What does this lsqnonlin error mean?
    3 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 Manual Performance Optimization 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!
