Mercurial > octave
view test/classdef/struct_wrapper.m @ 31246:43a6be589387
doc: New documentation for memoization techniques (bug #60860)
vectorize.texi: New section on memoization
octave.texi: List new section
author | Arun Giridhar <arungiridhar@gmail.com> |
---|---|
date | Thu, 29 Sep 2022 20:31:52 -0400 |
parents | ad71c8d87cff |
children |
line wrap: on
line source
classdef struct_wrapper properties s; end methods function o = struct_wrapper () if (nargin == 0) o.s = struct (); else error ('struct_wrapper:SyntaxError', ... 'struct_wrapper: Invalid syntax'); end end function n = numel (o, varargin) n = 1; end function varargout = subsref (o, p) if (isequal (p(1).type, '{}')) r = []; for i = 1:numel (p(1).subs) r = [r, getfield(o.s, p(1).subs{i})]; end varargout = {r}; else error ('struct_wrapper:SyntaxError', ... 'struct_wrapper: Invalid syntax'); end end function o = subsasgn (o, p, varargin) if (isequal (p(1).type, '{}')) for i = 1:numel (p(1).subs) o.s = setfield (o.s, p(1).subs{i}, varargin{1}(i)); end else error ('struct_wrapper:SyntaxError', ... 'struct_wrapper: Invalid syntax'); end end end end