Mercurial > octave
view examples/code/@polynomial/subsasgn.m @ 21072:a9ed4104ecfd
doc: Rewrite documentation for Object Oriented Programming.
* octave.texi: Rename "Manipulating Classes" node to "Class Methods"
* oop.txi: Rewrite signicant parts of Object Oriented Programming chapter.
* examples/code/@FIRfilter/subsasgn.m, examples/code/@FIRfilter/subsref.m,
examples/code/@polynomial/get.m, examples/code/@polynomial/subsasgn.m:
Enclose property in error messages in double quotes ("%s").
* examples/code/@polynomial/subsref.m: Rename input object to 'p'.
Rename variable "ind" to "idx". Enclose property in error messages in double
quotes ("%s").
* ov-class.cc (Fsuperiorto, Finferiorto): Improve docstrings.
* ov-usr-fcn.cc (Foptimize_subsasgn_calls): Improve docstring.
* ov.cc (Fsubsref, Fsubsasgn): Improve docstrings.
* display.m: Rewrite docstring. Rename input variable to "obj". Remove unused
output variable from function declaration.
* subsindex.m: Rename input variable to "obj". Rewrite examples in docstring.
Add input validation and BIST tests to m-file.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 14 Jan 2016 13:30:22 -0800 |
parents | fd97ed44f2da |
children |
line wrap: on
line source
function p = subsasgn (p, s, val) if (isempty (s)) error ("@polynomial/subsasgn: needs index"); endif switch (s(1).type) case "{}" ind = s(1).subs; if (numel (ind) != 1) error ("@polynomial/subsasgn: need exactly one index"); elseif (numel (s) != 1) error ("@polynomial/subsasgn: chained subscripts not allowed for {}"); endif if (isnumeric (ind{1})) p.poly(ind{1}+1) = val; else p.poly(ind{1}) = val; endif case "." fld = s(1).subs; if (! strcmp (fld, "poly")) error ('@polynomial/subsasgn: invalid property "%s"', fld); endif if (numel (s) == 1) p.poly = val; else p.poly = subsasgn (p.poly, s(2:end), val); endif otherwise error ("@polynomial/subsasgn: invalid subscript type"); endswitch endfunction