# What does this lsqnonlin error mean?

조회 수: 4(최근 30일)
Amir Patel 2013년 9월 13일
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

댓글을 달려면 로그인하십시오.

### 채택된 답변

Steve Grikschat 2013년 9월 13일
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.
##### 댓글 수: 1표시숨기기 없음
Amir Patel 2013년 9월 13일
100% correct. I was stopping the simulation when end conditions were reached. This resulted in varying size arrays.
Thank you for the help!

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by