ln not recognised as a command
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello
I've entered the following formula in a function file:
heightModel = @(params,ages) (params(3)+params(4).*(ages/12)+params(5).*log((1+(ages/12))).*(1-exp(1).^(-exp(1).^(params(1)-params(2).*(ages/12))))+params(6).*exp(1).^(-exp(1).^(params(1)-params(2).*(ages/12)))); modelStrings = {'A','B','C','D','E','U'};
this works perfect but is not the good formula. The only thing that needs to change is the log in a ln
but if i do this i get the following error Undefined function 'ln' for input arguments of type 'double'.
Error in getModel/@(params,ages)(params(3)+params(4).*(ages/12)+params(5).*ln((1+(ages/12))).*(1-exp(1).^(-exp(1).^(params(1)-params(2).*(ages/12))))+params(6).*exp(1).^(-exp(1).^(params(1)-params(2).*(ages/12))))
Error in lsqcurvefit (line 199) initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});
Error in fitFilteredModel (line 13) [parameters,resnorm,residual,exitflag,output] = lsqcurvefit(heightModel,initialValues,filteredData(:,1),filteredData(:,2));
Error in main (line 43) fitFilteredModel(ages(i),models{k},genders{j},data,individualFit);
Caused by: Failure in initial user-supplied objective function evaluation. LSQCURVEFIT cannot continue.
Anyone willing to help me out. I'm a biologist so my coding knowledge is very limited.
Thanks
0 Kommentare
Akzeptierte Antwort
Iain
am 25 Jul. 2013
You can fix it by putting:
ln = @(x)(log(x));
at the start of your code...
or replace ln with "log"
1 Kommentar
Siehe auch
Kategorien
Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!