Mercurial > jwe > octave
view examples/code/@polynomial/subsref.m @ 21070:fd97ed44f2da
doc: Use more coding conventions in Object Oriented reference example code.
* examples/code/@FIRfilter/FIRfilter.m,
examples/code/@FIRfilter/FIRfilter_aggregation.m,
examples/code/@FIRfilter/subsasgn.m, examples/code/@FIRfilter/subsref.m,
examples/code/@polynomial/display.m, examples/code/@polynomial/double.m,
examples/code/@polynomial/get.m, examples/code/@polynomial/mtimes.m,
examples/code/@polynomial/numel.m, examples/code/@polynomial/polynomial.m,
examples/code/@polynomial/polynomial_superiorto.m,
examples/code/@polynomial/polyval.m, examples/code/@polynomial/roots.m,
examples/code/@polynomial/set.m, examples/code/@polynomial/subsasgn.m,
examples/code/@polynomial/subsref.m:
Remove "Function File" from deftypefn. Use names of variables in error
messages. Surround invalid items in error messages with single quotes.
Use meaningful variable names.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 14 Jan 2016 09:59:07 -0800 |
parents | 73ab962bc52d |
children | a9ed4104ecfd |
line wrap: on
line source
function r = subsref (a, s) if (isempty (s)) error ("@polynomial/subsref: missing index"); endif switch (s(1).type) case "()" ind = s(1).subs; if (numel (ind) != 1) error ("@polynomial/subsref: need exactly one index"); endif r = polyval (fliplr (a.poly), ind{1}); case "{}" ind = s(1).subs; if (numel (ind) != 1) error ("@polynomial/subsref: need exactly one index"); endif if (isnumeric (ind{1})) r = a.poly(ind{1}+1); else r = a.poly(ind{1}); endif case "." fld = s.subs; if (! strcmp (fld, "poly")) error ("@polynomial/subsref: invalid property '%s'", fld); endif r = a.poly; otherwise error ("@polynomial/subsref: invalid subscript type"); endswitch if (numel (s) > 1) r = subsref (r, s(2:end)); endif endfunction