comparison doc/interpreter/container.txi @ 19627:446c46af4b42 stable

strip trailing whitespace from most source files * Makefile.am, NEWS, build-aux/common.mk, configure.ac, doc/Makefile.am, doc/doxyhtml/Makefile.am, doc/interpreter/Makefile.am, doc/interpreter/arith.txi, doc/interpreter/audio.txi, doc/interpreter/basics.txi, doc/interpreter/bugs.txi, doc/interpreter/container.txi, doc/interpreter/cp-idx.txi, doc/interpreter/data.txi, doc/interpreter/debug.txi, doc/interpreter/diagperm.txi, doc/interpreter/diffeq.txi, doc/interpreter/doccheck/README, doc/interpreter/doccheck/spellcheck, doc/interpreter/emacs.txi, doc/interpreter/errors.txi, doc/interpreter/eval.txi, doc/interpreter/expr.txi, doc/interpreter/external.txi, doc/interpreter/fn-idx.txi, doc/interpreter/func.txi, doc/interpreter/geometry.txi, doc/interpreter/geometryimages.m, doc/interpreter/gpl.txi, doc/interpreter/grammar.txi, doc/interpreter/gui.txi, doc/interpreter/image.txi, doc/interpreter/install.txi, doc/interpreter/interp.txi, doc/interpreter/interpimages.m, doc/interpreter/intro.txi, doc/interpreter/io.txi, doc/interpreter/java.txi, doc/interpreter/linalg.txi, doc/interpreter/macros.texi, doc/interpreter/matrix.txi, doc/interpreter/munge-texi.pl, doc/interpreter/nonlin.txi, doc/interpreter/numbers.txi, doc/interpreter/obsolete.txi, doc/interpreter/octave-config.1, doc/interpreter/octave.texi, doc/interpreter/oop.txi, doc/interpreter/op-idx.txi, doc/interpreter/optim.txi, doc/interpreter/package.txi, doc/interpreter/plot.txi, doc/interpreter/poly.txi, doc/interpreter/preface.txi, doc/interpreter/quad.txi, doc/interpreter/set.txi, doc/interpreter/signal.txi, doc/interpreter/sparse.txi, doc/interpreter/sparseimages.m, doc/interpreter/splineimages.m, doc/interpreter/stats.txi, doc/interpreter/stmt.txi, doc/interpreter/strings.txi, doc/interpreter/system.txi, doc/interpreter/testfun.txi, doc/interpreter/tips.txi, doc/interpreter/var.txi, doc/interpreter/vectorize.txi, doc/liboctave/Makefile.am, doc/liboctave/array.texi, doc/liboctave/bugs.texi, doc/liboctave/cp-idx.texi, doc/liboctave/dae.texi, doc/liboctave/diffeq.texi, doc/liboctave/error.texi, doc/liboctave/factor.texi, doc/liboctave/fn-idx.texi, doc/liboctave/gpl.texi, doc/liboctave/install.texi, doc/liboctave/intro.texi, doc/liboctave/liboctave.texi, doc/liboctave/matvec.texi, doc/liboctave/nleqn.texi, doc/liboctave/nlfunc.texi, doc/liboctave/ode.texi, doc/liboctave/optim.texi, doc/liboctave/preface.texi, doc/liboctave/quad.texi, doc/liboctave/range.texi, doc/refcard/Makefile.am, doc/refcard/refcard.tex, etc/HACKING, etc/NEWS.1, etc/NEWS.2, etc/NEWS.3, etc/OLD-ChangeLogs/ChangeLog, etc/OLD-ChangeLogs/doc-ChangeLog, etc/OLD-ChangeLogs/scripts-ChangeLog, etc/OLD-ChangeLogs/src-ChangeLog, etc/OLD-ChangeLogs/test-ChangeLog, etc/PROJECTS, etc/README.Cygwin, etc/README.MacOS, etc/README.MinGW, etc/README.gnuplot, etc/gdbinit, etc/icons/Makefile.am, examples/@polynomial/end.m, examples/@polynomial/subsasgn.m, examples/Makefile.am, examples/standalonebuiltin.cc, libgui/Makefile.am, libgui/qterminal/libqterminal/README, libgui/qterminal/libqterminal/unix/BlockArray.cpp, libgui/qterminal/libqterminal/unix/BlockArray.h, libgui/qterminal/libqterminal/unix/Character.h, libgui/qterminal/libqterminal/unix/CharacterColor.h, libgui/qterminal/libqterminal/unix/Emulation.cpp, libgui/qterminal/libqterminal/unix/Emulation.h, libgui/qterminal/libqterminal/unix/Filter.cpp, libgui/qterminal/libqterminal/unix/Filter.h, libgui/qterminal/libqterminal/unix/History.cpp, libgui/qterminal/libqterminal/unix/History.h, libgui/qterminal/libqterminal/unix/KeyboardTranslator.cpp, libgui/qterminal/libqterminal/unix/KeyboardTranslator.h, libgui/qterminal/libqterminal/unix/LineFont.h, libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.cpp, libgui/qterminal/libqterminal/unix/QUnixTerminalImpl.h, libgui/qterminal/libqterminal/unix/Screen.cpp, libgui/qterminal/libqterminal/unix/Screen.h, libgui/qterminal/libqterminal/unix/ScreenWindow.cpp, libgui/qterminal/libqterminal/unix/ScreenWindow.h, libgui/qterminal/libqterminal/unix/TerminalCharacterDecoder.cpp, libgui/qterminal/libqterminal/unix/TerminalCharacterDecoder.h, libgui/qterminal/libqterminal/unix/Vt102Emulation.h, libgui/qterminal/libqterminal/win32/QWinTerminalImpl.cpp, libgui/qterminal/qterminal/main.cpp, libgui/src/m-editor/file-editor-tab.cc, libgui/src/octave-gui.cc, libgui/src/octave-qt-link.cc, libinterp/corefcn/data.cc, libinterp/corefcn/defun-int.h, libinterp/corefcn/det.cc, libinterp/corefcn/gl2ps-renderer.cc, libinterp/corefcn/graphics.cc, libinterp/corefcn/graphics.in.h, libinterp/corefcn/ls-mat5.cc, libinterp/corefcn/lu.cc, libinterp/corefcn/oct-tex-parser.yy, libinterp/corefcn/oct-tex-symbols.in, libinterp/corefcn/quadcc.cc, libinterp/corefcn/zfstream.cc, libinterp/dldfcn/__eigs__.cc, libinterp/dldfcn/__voronoi__.cc, libinterp/gendoc.pl, libinterp/genprops.awk, libinterp/mk-errno-list, libinterp/mk-pkg-add, libinterp/mkbuiltins, libinterp/mkdefs, libinterp/mkdocs, libinterp/mkops, libinterp/octave-value/ov-java.cc, libinterp/parse-tree/lex.ll, libinterp/parse-tree/oct-parse.in.yy, libinterp/parse-tree/octave.gperf, liboctave/Makefile.am, liboctave/array/Array.cc, liboctave/array/module.mk, liboctave/cruft/daspk/datv.f, liboctave/cruft/daspk/dcnst0.f, liboctave/cruft/daspk/dcnstr.f, liboctave/cruft/daspk/ddasic.f, liboctave/cruft/daspk/ddasid.f, liboctave/cruft/daspk/ddasik.f, liboctave/cruft/daspk/ddaspk.f, liboctave/cruft/daspk/ddstp.f, liboctave/cruft/daspk/ddwnrm.f, liboctave/cruft/daspk/dfnrmd.f, liboctave/cruft/daspk/dfnrmk.f, liboctave/cruft/daspk/dhels.f, liboctave/cruft/daspk/dheqr.f, liboctave/cruft/daspk/dinvwt.f, liboctave/cruft/daspk/dlinsd.f, liboctave/cruft/daspk/dlinsk.f, liboctave/cruft/daspk/dmatd.f, liboctave/cruft/daspk/dnedd.f, liboctave/cruft/daspk/dnedk.f, liboctave/cruft/daspk/dnsd.f, liboctave/cruft/daspk/dnsid.f, liboctave/cruft/daspk/dnsik.f, liboctave/cruft/daspk/dnsk.f, liboctave/cruft/daspk/dorth.f, liboctave/cruft/daspk/dslvd.f, liboctave/cruft/daspk/dslvk.f, liboctave/cruft/daspk/dspigm.f, liboctave/cruft/daspk/dyypnw.f, liboctave/cruft/dasrt/ddasrt.f, liboctave/cruft/dasrt/drchek.f, liboctave/cruft/dassl/ddaslv.f, liboctave/cruft/dassl/ddassl.f, liboctave/cruft/misc/blaswrap.c, liboctave/cruft/misc/module.mk, liboctave/cruft/odepack/cfode.f, liboctave/cruft/odepack/dlsode.f, liboctave/cruft/odepack/ewset.f, liboctave/cruft/odepack/intdy.f, liboctave/cruft/odepack/prepj.f, liboctave/cruft/odepack/sintdy.f, liboctave/cruft/odepack/slsode.f, liboctave/cruft/odepack/solsy.f, liboctave/cruft/odepack/ssolsy.f, liboctave/cruft/odepack/stode.f, liboctave/cruft/odepack/vnorm.f, liboctave/cruft/ranlib/Basegen.doc, liboctave/cruft/ranlib/README, liboctave/cruft/ranlib/genbet.f, liboctave/cruft/ranlib/genexp.f, liboctave/cruft/ranlib/gennch.f, liboctave/cruft/ranlib/gennf.f, liboctave/cruft/ranlib/gennor.f, liboctave/cruft/ranlib/getsd.f, liboctave/cruft/ranlib/initgn.f, liboctave/cruft/ranlib/phrtsd.f, liboctave/cruft/ranlib/randlib.fdoc, liboctave/cruft/ranlib/setsd.f, liboctave/cruft/ranlib/tstgmn.for, liboctave/cruft/ranlib/tstmid.for, liboctave/cruft/slatec-fn/atanh.f, liboctave/cruft/slatec-fn/datanh.f, liboctave/cruft/slatec-fn/xgmainc.f, liboctave/cruft/slatec-fn/xsgmainc.f, liboctave/numeric/module.mk, liboctave/operators/mk-ops.awk, liboctave/operators/mx-ops, liboctave/operators/sparse-mk-ops.awk, liboctave/operators/sparse-mx-ops, liboctave/operators/vx-ops, liboctave/util/module.mk, run-octave.in, scripts/@ftp/ftp.m, scripts/audio/wavread.m, scripts/deprecated/java_convert_matrix.m, scripts/deprecated/java_debug.m, scripts/deprecated/java_invoke.m, scripts/deprecated/java_new.m, scripts/deprecated/java_unsigned_conversion.m, scripts/deprecated/javafields.m, scripts/deprecated/javamethods.m, scripts/deprecated/shell_cmd.m, scripts/general/accumarray.m, scripts/general/display.m, scripts/general/fieldnames.m, scripts/general/interp1.m, scripts/general/interp2.m, scripts/general/interp3.m, scripts/general/isa.m, scripts/general/methods.m, scripts/general/sortrows.m, scripts/geometry/convhull.m, scripts/geometry/delaunay.m, scripts/geometry/delaunay3.m, scripts/geometry/delaunayn.m, scripts/geometry/griddata.m, scripts/geometry/griddatan.m, scripts/geometry/voronoi.m, scripts/geometry/voronoin.m, scripts/gui/guihandles.m, scripts/gui/inputdlg.m, scripts/gui/listdlg.m, scripts/gui/msgbox.m, scripts/gui/questdlg.m, scripts/gui/uigetfile.m, scripts/gui/waitbar.m, scripts/gui/warndlg.m, scripts/help/doc.m, scripts/help/help.m, scripts/help/type.m, scripts/image/bone.m, scripts/image/cmpermute.m, scripts/image/cmunique.m, scripts/image/colorcube.m, scripts/image/colormap.m, scripts/image/contrast.m, scripts/image/gray2ind.m, scripts/image/image.m, scripts/image/imshow.m, scripts/image/ind2gray.m, scripts/image/jet.m, scripts/image/rgb2ntsc.m, scripts/image/spinmap.m, scripts/io/importdata.m, scripts/io/strread.m, scripts/io/textread.m, scripts/io/textscan.m, scripts/java/java_get.m, scripts/java/java_set.m, scripts/java/javaaddpath.m, scripts/java/javaclasspath.m, scripts/java/javamem.m, scripts/linear-algebra/linsolve.m, scripts/linear-algebra/qzhess.m, scripts/miscellaneous/debug.m, scripts/miscellaneous/desktop.m, scripts/miscellaneous/dir.m, scripts/miscellaneous/dos.m, scripts/miscellaneous/edit.m, scripts/miscellaneous/fact.m, scripts/miscellaneous/getappdata.m, scripts/miscellaneous/inputname.m, scripts/miscellaneous/license.m, scripts/miscellaneous/ls_command.m, scripts/miscellaneous/run.m, scripts/miscellaneous/setfield.m, scripts/miscellaneous/unix.m, scripts/miscellaneous/ver.m, scripts/mk-pkg-add, scripts/mkdoc.pl, scripts/optimization/fminsearch.m, scripts/optimization/optimset.m, scripts/optimization/sqp.m, scripts/pkg/pkg.m, scripts/pkg/private/create_pkgadddel.m, scripts/pkg/private/fix_depends.m, scripts/pkg/private/install.m, scripts/plot/appearance/axis.m, scripts/plot/appearance/box.m, scripts/plot/appearance/clabel.m, scripts/plot/appearance/daspect.m, scripts/plot/appearance/datetick.m, scripts/plot/appearance/grid.m, scripts/plot/appearance/legend.m, scripts/plot/appearance/orient.m, scripts/plot/appearance/shading.m, scripts/plot/appearance/text.m, scripts/plot/appearance/title.m, scripts/plot/appearance/xlabel.m, scripts/plot/appearance/ylabel.m, scripts/plot/appearance/zlabel.m, scripts/plot/draw/area.m, scripts/plot/draw/bar.m, scripts/plot/draw/barh.m, scripts/plot/draw/colorbar.m, scripts/plot/draw/contour.m, scripts/plot/draw/contour3.m, scripts/plot/draw/contourf.m, scripts/plot/draw/ellipsoid.m, scripts/plot/draw/errorbar.m, scripts/plot/draw/ezcontour.m, scripts/plot/draw/ezcontourf.m, scripts/plot/draw/ezmesh.m, scripts/plot/draw/ezpolar.m, scripts/plot/draw/fill.m, scripts/plot/draw/fplot.m, scripts/plot/draw/hist.m, scripts/plot/draw/meshc.m, scripts/plot/draw/meshz.m, scripts/plot/draw/pareto.m, scripts/plot/draw/patch.m, scripts/plot/draw/peaks.m, scripts/plot/draw/pie.m, scripts/plot/draw/pie3.m, scripts/plot/draw/plot.m, scripts/plot/draw/plotyy.m, scripts/plot/draw/private/__bar__.m, scripts/plot/draw/private/__contour__.m, scripts/plot/draw/private/__errplot__.m, scripts/plot/draw/private/__ezplot__.m, scripts/plot/draw/private/__patch__.m, scripts/plot/draw/private/__stem__.m, scripts/plot/draw/rectangle.m, scripts/plot/draw/ribbon.m, scripts/plot/draw/rose.m, scripts/plot/draw/scatter.m, scripts/plot/draw/scatter3.m, scripts/plot/draw/semilogx.m, scripts/plot/draw/shrinkfaces.m, scripts/plot/draw/sombrero.m, scripts/plot/draw/sphere.m, scripts/plot/draw/stairs.m, scripts/plot/draw/stem.m, scripts/plot/draw/stemleaf.m, scripts/plot/draw/surf.m, scripts/plot/draw/surface.m, scripts/plot/draw/surfc.m, scripts/plot/draw/surfl.m, scripts/plot/draw/surfnorm.m, scripts/plot/draw/tetramesh.m, scripts/plot/draw/trimesh.m, scripts/plot/draw/triplot.m, scripts/plot/draw/trisurf.m, scripts/plot/util/__gnuplot_drawnow__.m, scripts/plot/util/__plt_get_axis_arg__.m, scripts/plot/util/axes.m, scripts/plot/util/clf.m, scripts/plot/util/copyobj.m, scripts/plot/util/figure.m, scripts/plot/util/gcbo.m, scripts/plot/util/graphics_toolkit.m, scripts/plot/util/hggroup.m, scripts/plot/util/meshgrid.m, scripts/plot/util/newplot.m, scripts/plot/util/print.m, scripts/plot/util/private/__add_default_menu__.m, scripts/plot/util/private/__fltk_print__.m, scripts/plot/util/private/__gnuplot_print__.m, scripts/plot/util/private/__print_parse_opts__.m, scripts/plot/util/refreshdata.m, scripts/plot/util/subplot.m, scripts/polynomial/conv.m, scripts/polynomial/poly.m, scripts/polynomial/polyeig.m, scripts/polynomial/polyfit.m, scripts/polynomial/polyval.m, scripts/polynomial/private/__splinefit__.m, scripts/polynomial/spline.m, scripts/prefs/prefdir.m, scripts/prefs/preferences.m, scripts/prefs/private/prefsfile.m, scripts/prefs/rmpref.m, scripts/signal/freqz.m, scripts/signal/module.mk, scripts/sparse/eigs.m, scripts/sparse/pcg.m, scripts/sparse/private/__sprand_impl__.m, scripts/sparse/sprand.m, scripts/sparse/sprandn.m, scripts/sparse/spy.m, scripts/sparse/svds.m, scripts/specfun/expint.m, scripts/specfun/factor.m, scripts/special-matrix/gallery.m, scripts/special-matrix/hankel.m, scripts/special-matrix/toeplitz.m, scripts/startup/inputrc, scripts/statistics/base/kurtosis.m, scripts/statistics/base/moment.m, scripts/statistics/base/qqplot.m, scripts/statistics/base/var.m, scripts/statistics/distributions/betarnd.m, scripts/statistics/distributions/binoinv.m, scripts/statistics/distributions/binopdf.m, scripts/statistics/distributions/binornd.m, scripts/statistics/distributions/cauchy_rnd.m, scripts/statistics/distributions/chi2rnd.m, scripts/statistics/distributions/discrete_pdf.m, scripts/statistics/distributions/discrete_rnd.m, scripts/statistics/distributions/empirical_rnd.m, scripts/statistics/distributions/exprnd.m, scripts/statistics/distributions/frnd.m, scripts/statistics/distributions/gamrnd.m, scripts/statistics/distributions/geornd.m, scripts/statistics/distributions/hygernd.m, scripts/statistics/distributions/kolmogorov_smirnov_cdf.m, scripts/statistics/distributions/laplace_cdf.m, scripts/statistics/distributions/laplace_pdf.m, scripts/statistics/distributions/logistic_cdf.m, scripts/statistics/distributions/logistic_pdf.m, scripts/statistics/distributions/lognrnd.m, scripts/statistics/distributions/nbincdf.m, scripts/statistics/distributions/nbininv.m, scripts/statistics/distributions/nbinpdf.m, scripts/statistics/distributions/nbinrnd.m, scripts/statistics/distributions/normrnd.m, scripts/statistics/distributions/poissinv.m, scripts/statistics/distributions/poissrnd.m, scripts/statistics/distributions/tinv.m, scripts/statistics/distributions/trnd.m, scripts/statistics/distributions/unidcdf.m, scripts/statistics/distributions/unidpdf.m, scripts/statistics/distributions/unidrnd.m, scripts/statistics/distributions/unifrnd.m, scripts/statistics/distributions/wblrnd.m, scripts/statistics/models/module.mk, scripts/statistics/tests/kruskal_wallis_test.m, scripts/strings/base2dec.m, scripts/strings/deblank.m, scripts/strings/dec2base.m, scripts/strings/dec2bin.m, scripts/strings/dec2hex.m, scripts/strings/mat2str.m, scripts/strings/ostrsplit.m, scripts/strings/regexptranslate.m, scripts/strings/str2num.m, scripts/strings/strcat.m, scripts/strings/strjoin.m, scripts/strings/strsplit.m, scripts/strings/strtok.m, scripts/strings/strtrim.m, scripts/strings/strtrunc.m, scripts/strings/substr.m, scripts/testfun/__run_test_suite__.m, scripts/testfun/speed.m, scripts/testfun/test.m, scripts/time/asctime.m, scripts/time/datenum.m, scripts/time/datevec.m, scripts/time/weekday.m, src/Makefile.am, test/Makefile.am, test/build-bc-overload-tests.sh, test/build-sparse-tests.sh, test/jit.tst, test/line-continue.tst: Strip trailing whitespace.
author John W. Eaton <jwe@octave.org>
date Tue, 20 Jan 2015 08:26:57 -0500
parents d63878346099
children 0e1f5a750d00
comparison
equal deleted inserted replaced
19488:8dbd55742112 19627:446c46af4b42
4 @c 4 @c
5 @c Octave is free software; you can redistribute it and/or modify it 5 @c Octave is free software; you can redistribute it and/or modify it
6 @c under the terms of the GNU General Public License as published by the 6 @c under the terms of the GNU General Public License as published by the
7 @c Free Software Foundation; either version 3 of the License, or (at 7 @c Free Software Foundation; either version 3 of the License, or (at
8 @c your option) any later version. 8 @c your option) any later version.
9 @c 9 @c
10 @c Octave is distributed in the hope that it will be useful, but WITHOUT 10 @c Octave is distributed in the hope that it will be useful, but WITHOUT
11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 @c ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 @c FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 @c for more details. 13 @c for more details.
14 @c 14 @c
15 @c You should have received a copy of the GNU General Public License 15 @c You should have received a copy of the GNU General Public License
16 @c along with Octave; see the file COPYING. If not, see 16 @c along with Octave; see the file COPYING. If not, see
17 @c <http://www.gnu.org/licenses/>. 17 @c <http://www.gnu.org/licenses/>.
18 18
19 @node Data Containers 19 @node Data Containers
258 258
259 @noindent 259 @noindent
260 which creates a 2-by-1 structure array with two fields. Another way 260 which creates a 2-by-1 structure array with two fields. Another way
261 to create a structure array is with the @code{struct} function 261 to create a structure array is with the @code{struct} function
262 (@pxref{Creating Structures}). As previously, to print the value of 262 (@pxref{Creating Structures}). As previously, to print the value of
263 the structure array, you can type its name: 263 the structure array, you can type its name:
264 264
265 @example 265 @example
266 @group 266 @group
267 x 267 x
268 @result{} x = 268 @result{} x =
269 @{ 269 @{
270 1x2 struct array containing the fields: 270 1x2 struct array containing the fields:
271 271
272 a 272 a
273 b 273 b
274 @} 274 @}
275 @end group 275 @end group
276 @end example 276 @end example
277 277
278 Individual elements of the structure array can be returned by indexing 278 Individual elements of the structure array can be returned by indexing
279 the variable like @code{@var{x}(1)}, which returns a structure with 279 the variable like @code{@var{x}(1)}, which returns a structure with
280 two fields: 280 two fields:
281 281
282 @example 282 @example
283 @group 283 @group
284 x(1) 284 x(1)
348 numerical array, by assigning the elements to an empty matrix. For 348 numerical array, by assigning the elements to an empty matrix. For
349 example 349 example
350 350
351 @example 351 @example
352 @group 352 @group
353 in = struct ("call1", @{x, Inf, "last"@}, 353 in = struct ("call1", @{x, Inf, "last"@},
354 "call2", @{x, Inf, "first"@}) 354 "call2", @{x, Inf, "first"@})
355 @result{} in = 355 @result{} in =
356 @{ 356 @{
357 1x3 struct array containing the fields: 357 1x3 struct array containing the fields:
358 358
448 @} 448 @}
449 @end group 449 @end group
450 @end example 450 @end example
451 451
452 If the values passed to @code{struct} are a mix of scalar and cell 452 If the values passed to @code{struct} are a mix of scalar and cell
453 arrays, then the scalar arguments are expanded to create a 453 arrays, then the scalar arguments are expanded to create a
454 structure array with a consistent dimension. For example: 454 structure array with a consistent dimension. For example:
455 455
456 @example 456 @example
457 @group 457 @group
458 s = struct ("field1", @{1, "one"@}, "field2", @{2, "two"@}, 458 s = struct ("field1", @{1, "one"@}, "field2", @{2, "two"@},
459 "field3", 3); 459 "field3", 3);
460 s.field1 460 s.field1
461 @result{} 461 @result{}
462 ans = 1 462 ans = 1
463 ans = one 463 ans = one
464 464
465 s.field2 465 s.field2
466 @result{} 466 @result{}
643 @subsection Creating Cell Arrays 643 @subsection Creating Cell Arrays
644 644
645 The introductory example (@pxref{Basic Usage of Cell Arrays}) showed 645 The introductory example (@pxref{Basic Usage of Cell Arrays}) showed
646 how to create a cell array containing currently available variables. 646 how to create a cell array containing currently available variables.
647 In many situations, however, it is useful to create a cell array and 647 In many situations, however, it is useful to create a cell array and
648 then fill it with data. 648 then fill it with data.
649 649
650 The @code{cell} function returns a cell array of a given size, containing 650 The @code{cell} function returns a cell array of a given size, containing
651 empty matrices. This function is similar to the @code{zeros} 651 empty matrices. This function is similar to the @code{zeros}
652 function for creating new numerical arrays. The following example creates 652 function for creating new numerical arrays. The following example creates
653 a 2-by-2 cell array containing empty matrices 653 a 2-by-2 cell array containing empty matrices
704 @node Indexing Cell Arrays 704 @node Indexing Cell Arrays
705 @subsection Indexing Cell Arrays 705 @subsection Indexing Cell Arrays
706 706
707 As shown in @pxref{Basic Usage of Cell Arrays} elements can be 707 As shown in @pxref{Basic Usage of Cell Arrays} elements can be
708 extracted from cell arrays using the @samp{@{} and @samp{@}} 708 extracted from cell arrays using the @samp{@{} and @samp{@}}
709 operators. If you want to extract or access subarrays which are still 709 operators. If you want to extract or access subarrays which are still
710 cell arrays, you need to use the @samp{(} and @samp{)} operators. The 710 cell arrays, you need to use the @samp{(} and @samp{)} operators. The
711 following example illustrates the difference: 711 following example illustrates the difference:
712 712
713 @example 713 @example
714 @group 714 @group
715 c = @{"1", "2", "3"; "x", "y", "z"; "4", "5", "6"@}; 715 c = @{"1", "2", "3"; "x", "y", "z"; "4", "5", "6"@};
716 c@{2,3@} 716 c@{2,3@}
717 @result{} ans = z 717 @result{} ans = z
718 718
719 c(2,3) 719 c(2,3)
720 @result{} ans = 720 @result{} ans =
721 @{ 721 @{
722 [1,1] = z 722 [1,1] = z
723 @} 723 @}
724 @end group 724 @end group
725 @end example 725 @end example
755 755
756 @example 756 @example
757 c(:, [1, 3]) = 0; 757 c(:, [1, 3]) = 0;
758 @end example 758 @end example
759 759
760 @noindent Here, the scalar @samp{0} is automatically promoted to 760 @noindent Here, the scalar @samp{0} is automatically promoted to
761 cell array @samp{@{0@}} and then assigned to the subarray of @code{c}. 761 cell array @samp{@{0@}} and then assigned to the subarray of @code{c}.
762 762
763 To give another example for indexing cell arrays with @samp{()}, you 763 To give another example for indexing cell arrays with @samp{()}, you
764 can exchange the first and the second row of a cell array as in the 764 can exchange the first and the second row of a cell array as in the
765 following command: 765 following command:
766 766
767 @example 767 @example
768 @group 768 @group
769 c = @{1, 2, 3; 4, 5, 6@}; 769 c = @{1, 2, 3; 4, 5, 6@};
770 c([1, 2], :) = c([2, 1], :) 770 c([1, 2], :) = c([2, 1], :)
771 @result{} = 771 @result{} =
772 @{ 772 @{
773 [1,1] = 4 773 [1,1] = 4
774 [2,1] = 1 774 [2,1] = 1
775 [1,2] = 5 775 [1,2] = 5
776 [2,2] = 2 776 [2,2] = 2
787 example can be swapped back like this: 787 example can be swapped back like this:
788 788
789 @example 789 @example
790 @group 790 @group
791 [c@{[1,2], :@}] = deal (c@{[2, 1], :@}) 791 [c@{[1,2], :@}] = deal (c@{[2, 1], :@})
792 @result{} = 792 @result{} =
793 @{ 793 @{
794 [1,1] = 1 794 [1,1] = 1
795 [2,1] = 4 795 [2,1] = 4
796 [1,2] = 2 796 [1,2] = 2
797 [2,2] = 5 797 [2,2] = 5
850 strings. For cases, where the character matrix representation is required 850 strings. For cases, where the character matrix representation is required
851 for an operation, there are several functions that convert a cell 851 for an operation, there are several functions that convert a cell
852 array of strings to a character array and back. @code{char} and 852 array of strings to a character array and back. @code{char} and
853 @code{strvcat} convert cell arrays to a character array 853 @code{strvcat} convert cell arrays to a character array
854 (@pxref{Concatenating Strings}), while the function @code{cellstr} 854 (@pxref{Concatenating Strings}), while the function @code{cellstr}
855 converts a character array to a cell array of strings: 855 converts a character array to a cell array of strings:
856 856
857 @example 857 @example
858 @group 858 @group
859 a = ["hello"; "world"]; 859 a = ["hello"; "world"];
860 c = cellstr (a) 860 c = cellstr (a)
889 The following string functions support cell arrays of strings: 889 The following string functions support cell arrays of strings:
890 @code{char}, @code{strvcat}, @code{strcat} (@pxref{Concatenating 890 @code{char}, @code{strvcat}, @code{strcat} (@pxref{Concatenating
891 Strings}), @code{strcmp}, @code{strncmp}, @code{strcmpi}, 891 Strings}), @code{strcmp}, @code{strncmp}, @code{strcmpi},
892 @code{strncmpi} (@pxref{Comparing Strings}), @code{str2double}, 892 @code{strncmpi} (@pxref{Comparing Strings}), @code{str2double},
893 @code{deblank}, @code{strtrim}, @code{strtrunc}, @code{strfind}, 893 @code{deblank}, @code{strtrim}, @code{strtrunc}, @code{strfind},
894 @code{strmatch}, , @code{regexp}, @code{regexpi} (@pxref{Manipulating 894 @code{strmatch}, , @code{regexp}, @code{regexpi} (@pxref{Manipulating
895 Strings}) and @code{str2double} (@pxref{String Conversions}). 895 Strings}) and @code{str2double} (@pxref{String Conversions}).
896 896
897 The function @code{iscellstr} can be used to test if an object is a 897 The function @code{iscellstr} can be used to test if an object is a
898 cell array of strings. 898 cell array of strings.
899 899
950 element to the comma separated list @samp{@var{i}, @var{j}}. 950 element to the comma separated list @samp{@var{i}, @var{j}}.
951 951
952 Another example of where comma separated lists are used is in the 952 Another example of where comma separated lists are used is in the
953 creation of a new array with @code{[]} (@pxref{Matrices}) or the 953 creation of a new array with @code{[]} (@pxref{Matrices}) or the
954 creation of a cell array with @code{@{@}} (@pxref{Basic Usage of Cell 954 creation of a cell array with @code{@{@}} (@pxref{Basic Usage of Cell
955 Arrays}). In the expressions 955 Arrays}). In the expressions
956 956
957 @example 957 @example
958 @group 958 @group
959 a = [1, 2, 3, 4]; 959 a = [1, 2, 3, 4];
960 c = @{4, 5, 6, 7@}; 960 c = @{4, 5, 6, 7@};
991 1 2 3 4 5 991 1 2 3 4 5
992 @end group 992 @end group
993 @end example 993 @end example
994 994
995 Similarly, it is possible to create a new cell array containing cell 995 Similarly, it is possible to create a new cell array containing cell
996 elements selected with @code{@{@}}. By surrounding the list with 996 elements selected with @code{@{@}}. By surrounding the list with
997 @samp{@{} and @samp{@}} a new cell array will be created, as the 997 @samp{@{} and @samp{@}} a new cell array will be created, as the
998 following example illustrates: 998 following example illustrates:
999 999
1000 @example 1000 @example
1001 @group 1001 @group
1018 1018
1019 @example 1019 @example
1020 @group 1020 @group
1021 c = @{"GNU", "Octave", "is", "Free", "Software"@}; 1021 c = @{"GNU", "Octave", "is", "Free", "Software"@};
1022 printf ("%s ", c@{1@}, c@{2@}, c@{3@}, c@{4@}, c@{5@}); 1022 printf ("%s ", c@{1@}, c@{2@}, c@{3@}, c@{4@}, c@{5@});
1023 @print{} GNU Octave is Free Software 1023 @print{} GNU Octave is Free Software
1024 printf ("%s ", c@{:@}); 1024 printf ("%s ", c@{:@});
1025 @print{} GNU Octave is Free Software 1025 @print{} GNU Octave is Free Software
1026 @end group 1026 @end group
1027 @end example 1027 @end example
1028 1028
1029 If used on the left-hand side of an assignment, a comma separated list 1029 If used on the left-hand side of an assignment, a comma separated list
1030 generated with @code{@{@}} can be assigned to. An example is 1030 generated with @code{@{@}} can be assigned to. An example is
1031 1031
1032 @example 1032 @example
1033 @group 1033 @group
1034 in@{1@} = [10, 20, 30, 40, 50, 60, 70, 80, 90]; 1034 in@{1@} = [10, 20, 30, 40, 50, 60, 70, 80, 90];
1035 in@{2@} = inf; 1035 in@{2@} = inf;
1057 lists. This is done by addressing one of the fields of a structure 1057 lists. This is done by addressing one of the fields of a structure
1058 array. For example: 1058 array. For example:
1059 1059
1060 @example 1060 @example
1061 @group 1061 @group
1062 x = ceil (randn (10, 1)); 1062 x = ceil (randn (10, 1));
1063 in = struct ("call1", @{x, 3, "last"@}, 1063 in = struct ("call1", @{x, 3, "last"@},
1064 "call2", @{x, inf, "first"@}); 1064 "call2", @{x, inf, "first"@});
1065 out = struct ("call1", cell (2, 1), "call2", cell (2, 1)); 1065 out = struct ("call1", cell (2, 1), "call2", cell (2, 1));
1066 [out.call1] = find (in.call1); 1066 [out.call1] = find (in.call1);
1067 [out.call2] = find (in.call2); 1067 [out.call2] = find (in.call2);
1068 @end group 1068 @end group