|
|
Re: Updating variables in declared function handles
Posted:
Mar 13, 2013 9:31 AM
|
|
"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
|
|