Error using lsqcurvefit: Function value and YDATA sizes are not equal.
显示 更早的评论
I am trying to use the lsqcurvefit function to fit a sine wave to a data set, however i get the following error:
Function value and YDATA sizes are not equal.
when running the following code:
A = 0.3;
omega = 1;
phi = 0.1;
c = 0.1;
constants = [A omega phi c];
fun = @(timearray,constants) A .* (sin((timearray .* omega) + phi)) + c;
fittedconstants = lsqcurvefit(fun,constants,timearray,anglearray);
plot(timearray,fun(timearray,fittedconstants));
The array "timearray" is a 1x10001 double, defined by:
timearray = 0:0.01:100;
and the "anglearray" is also a 1x1001 double, filled with experimental data.
I feel as if it may be due to the mathematical operators used in my function, I have tried removing the "." before the "*" but this doesn't seem to work. placing a "." before and after the "sin" operator yields more errors.
Cheers in advance, I hope the information given is enough for a solution.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Linear Least Squares 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!