MATLAB Object-Oriented Programming

(Joyce) #1

case '()'
if length(s)<2
sref = builtin('subsref',obj.Data,s);
return
else
sref = builtin('subsref',obj,s);
end
case '{}'
error('MyDataClass:subsref',...
'Not a supported subscripted reference')
end
end


function obj = subsasgn(obj,s,val)
if isempty(s) && isa(val,'MyDataClass')
obj = MyDataClass(val.Data,val.Description);
end
switch s(1).type
case '.'
obj = builtin('subsasgn',obj,s,val);
case '()'
%
if length(s)<2
if isa(val,'MyDataClass')
error('MyDataClass:subsasgn',...
'Object must be scalar')
elseif isa(val,'double')
snew = substruct('.','Data','()',s(1).subs(:));
obj = subsasgn(obj,snew,val);
end
end
case '{}'
error('MyDataClass:subsasgn',...
'Not a supported subscripted assignment')
end
end


function a = double(obj)
a = obj.Data;
end


function c = plus(obj,b)
c = double(obj) + double(b);
end


Class with Modified Indexing
Free download pdf