|
|
Re: Updating variables in declared function handles
Posted:
Mar 14, 2013 11:23 AM
|
|
Thank you Steven!
I process brings up another question.
This is my Object defenition:
>> classdef MyTestObj >> properties >> Data = []; >> end; >> >> methods >> function obj=MyTestObj(M) >> obj.Data = M; >> end; >> function obj = UpdateData(obj) >> obj.Data = obj.Data+1; >> end; >> end; >> end;
To create an Object instance I do: >> obj=MyTestObj([1,2,3,4]); Then, to add the value '1', I have to do: >> obj = UpdateData(obj); However, I'd like to use >> UpdateData(obj); and that the value of obj.Data is increased.
Is that possible? And how?
Many thanks in advance.
Kind regards,
Kees
"Steven_Lord" <slord@mathworks.com> wrote in message <khpv3e$o46$1@newscl01ah.mathworks.com>... > > > "kees de Kapper" <kees_de_kapper@hotmail.com> wrote in message > news:khp1t7$3gv$1@newscl01ah.mathworks.com... > > Hi Folks, > > I've got trouble with updating the input data (variables) of a function > > which is part of a struct. > > > > In an matlab-file MyFunc.m I have defined the following two functions: > >> function varargout = MyFunc(varargin) > >> TmpStruct.Data = []; > >> TmpStruct.Size = @(DataDimension)GetDataSize(DataDimension, > >> TmpStruct.Data); > > This makes a COPY of TmpStruct.Data. > > >> function SizeOut = GetDataSize(DataDimension, Data) > >> SizeOut = size(Data, DataDimension); > > > > If I now do: > >> TmpS = MyFunc(); > >> TmpS.Data = ones(20,30,40); > >> TmpS.Size(1) > > I would like to obtain the value '20', however I retrieve '0' since > > 'TmpStruct.Data' was defined empty before the function declaration. How > > could I "update" the input data/variable? > > As written, you'd need to recreate the anonymous function. > > http://www.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html#f4-71621 > > "To supply different values for the coefficients, you must create a new > function handle:" > > Since your next message said that you were switching your MyFunc function to > be an object instead, you could do this using dependent properties or a size > method on your object. > > -- > Steve Lord > slord@mathworks.com > To contact Technical Support use the Contact Us link on > http://www.mathworks.com
|
|