annotate examples/code/@polynomial/subsasgn.m @ 19630:0e1f5a750d00

maint: Periodic merge of gui-release to default.
author John W. Eaton <jwe@octave.org>
date Tue, 20 Jan 2015 10:24:46 -0500
parents examples/@polynomial/subsasgn.m@446c46af4b42 examples/@polynomial/subsasgn.m@c8240a60dd01
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9285
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
1 function p = subsasgn (p, s, val)
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
2 if (length (s) < 1)
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
3 error ("polynomial: needs index");
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
4 endif
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
5 switch (s(1).type)
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
6 case "{}"
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
7 ind = s(1).subs;
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
8 if (numel (ind) != 1)
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
9 error ("polynomial: need exactly one index");
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
10 else
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
11 if (length (s) == 1)
9332
bf6da2fbfa4e examples/polynomial: properly handle magic colon
Jaroslav Hajek <highegg@gmail.com>
parents: 9285
diff changeset
12 if (isnumeric (ind{1}))
19627
446c46af4b42 strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents: 9332
diff changeset
13 p.poly(ind{1}+1) = val;
9332
bf6da2fbfa4e examples/polynomial: properly handle magic colon
Jaroslav Hajek <highegg@gmail.com>
parents: 9285
diff changeset
14 else
bf6da2fbfa4e examples/polynomial: properly handle magic colon
Jaroslav Hajek <highegg@gmail.com>
parents: 9285
diff changeset
15 p.poly(ind{1}) = val;
bf6da2fbfa4e examples/polynomial: properly handle magic colon
Jaroslav Hajek <highegg@gmail.com>
parents: 9285
diff changeset
16 endif
9285
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
17 else
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
18 error ("polynomial: chained subscripts not allowed for {}");
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
19 endif
8223
0c91b9a17dcf Commit missing files from previous change
David Bateman <dbateman@free.fr>
parents:
diff changeset
20 endif
0c91b9a17dcf Commit missing files from previous change
David Bateman <dbateman@free.fr>
parents:
diff changeset
21 case "."
9285
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
22 fld = s(1).subs;
9284
567e3e4ab74d fix up examples/@polynomial
Robert T. Short <octave@phaselockedsystems.com>
parents: 8256
diff changeset
23 if (strcmp (fld, "poly"))
9285
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
24 if (length (s) == 1)
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
25 p.poly = val;
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
26 else
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
27 p.poly = subsasgn (p.poly, s(2:end), val);
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
28 endif
9284
567e3e4ab74d fix up examples/@polynomial
Robert T. Short <octave@phaselockedsystems.com>
parents: 8256
diff changeset
29 else
567e3e4ab74d fix up examples/@polynomial
Robert T. Short <octave@phaselockedsystems.com>
parents: 8256
diff changeset
30 error ("@polynomial/subsref: invalid property \"%s\"", fld);
567e3e4ab74d fix up examples/@polynomial
Robert T. Short <octave@phaselockedsystems.com>
parents: 8256
diff changeset
31 endif
9285
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
32 otherwise
226f6d001ee2 further improve the polynomial example, fix indexing
Jaroslav Hajek <highegg@gmail.com>
parents: 9284
diff changeset
33 error ("invalid subscript type");
8223
0c91b9a17dcf Commit missing files from previous change
David Bateman <dbateman@free.fr>
parents:
diff changeset
34 endswitch
0c91b9a17dcf Commit missing files from previous change
David Bateman <dbateman@free.fr>
parents:
diff changeset
35 endfunction