lsqcurvefit question (Function value and YDATA sizes are not equal.)
48 views (last 30 days)
Show older comments
I am new to MATLAB. I want to do a curve fitting to get coefficent. But there is some problem. It said Function value and YDATA sizes are not equal. Where did i do mistake...? Thanks for help.
xdata=[1,5,10,20,50];
ydata=[0.3, 1.6, 2.8, 4.6, 7.6];
fun=@(x,xdata)x(1)*1-x(1)*(1-exp(((-1)*x(2))*xdata))/(x(2)*xdata);
x0=[10,5];
x=lsqcurvefit(fun,x0,xdata,ydata);
Function value and YDATA sizes are not equal.
0 Comments
Accepted Answer
Stephan
on 25 Jul 2018
Hi,
Use elementwise operations to declare your function:
xdata=[1,5,10,20,50];
ydata=[0.3, 1.6, 2.8, 4.6, 7.6];
fun=@(x,xdata)x(1).*1-x(1).*(1-exp(((-1).*x(2)).*xdata))./(x(2).*xdata);
x0=[10,5];
x=lsqcurvefit(fun,x0,xdata,ydata);
This version works.
Best regards
Stephan
0 Comments
More Answers (1)
See Also
Categories
Find more on Least Squares in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!