i have function saved 'calculateresults.m' in function 'ode45' nested:
function y = calculateresults (concv, ksv, xtrace) options = odeset('nonnegative', [1:size(concv,2)], 'reltol', 1e-6, 'abstol', 1e-12); [x,y] = ode45(@(t, cy)odeset(t, cy, ksv), xtrace, concv, options);
i use function fittype:
ft = fittype('calculateresults( concv, ksv, x )','independent',{'x'});
but doing causes error:
error using fittype/testcustommodelevaluation (line 12) expression calculateresults( concv, ksv, x ) not valid matlab expression, has non-scalar coefficients, or cannot evaluated: error in fittype expression ==> calculateresults( concv, ksv, x ) ??? index exceeds matrix dimensions.
my aim vary values of 'concv' in order fit function 'calculateresults.m' data (x , y):
mdl = fit( x, y, ft);
and return values of concv best fit data:
concvcalc = mdl.coefficients.estimate;
please help! thank you!
solved giving coefficients individual variables rather array:
ft = fittype('calculateresultsforfit(x,concv1,concv2,concv3,concv4,concv5,concv6,concv7,concv8,concv9,concv10,concv11,concv12,concv13,concv14,concv15,concv16,concv17,concv18,concv19,concv20)'); mdl = fit( x', ytofit', ft,'startpoint',[concv1,concv2,concv3,concv4,concv5,concv6,concv7,concv8,concv9,concv10,concv11,concv12,concv13,concv14,concv15,concv16,concv17,concv18,concv19,concv20],'lower',zeros(1,20));
variable ksv defined inside function being fitted.
Comments
Post a Comment