What does this lsqnonlin error mean?
5 views (last 30 days)
Show older comments
Hi
I'm attempting a nonlinear parameter fit using lsqnonlin and a Simulink model. I'm following a similarly method to: http://www.mathworks.com/help/optim/ug/lsqnonlin-with-a-simulink-model.html
After the function starts, I get this weird error below. What does it mean?
First-Order Norm of
if true
% Iteration Func-count Residual optimality Lambda step
0 3 231.377 51.4 0.01
1 6 179.496 51.1 0.001 6.82145
Subscripted assignment dimension mismatch.
Error in C:\MATLAB\R2012a Student\toolbox\shared\optimlib\finitedifferences.p>finitedifferences (line 159)
Error in levenbergMarquardt (line 235)
[JAC,~,~,numEvals,evalOK] = finitedifferences(XOUT,funfcn{3},[],[],[],costFun, ...
Error in lsqncommon (line 181)
[xC,FVAL,JACOB,EXITFLAG,OUTPUT,msgData] = ...
Error in lsqnonlin (line 235)
[xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Error in runSpringDamplsq (line 34)
param = lsqnonlin(@springDamplsq, param0, [], [], options);
end
0 Comments
Accepted Answer
Steve Grikschat
on 13 Sep 2013
This error is occurring because your function is returning arrays of varying sizes. In this case, it is being caught during finite-difference estimation of the function's Jacobian.
Check your function that you pass to lsqnonlin and make sure that it returns an array with a consistent number of elements.
More Answers (0)
See Also
Categories
Find more on Get Started with Optimization Toolbox in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!