MATLAB: What does this lsqnonlin error mean

lsqnonlinOptimization Toolboxparameter fit

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

Best Answer

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.