Mercurial > octave-nkf
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 |
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 |