I think I figured it out, it appears that everything must be type double (can't be single) or else it will fail.
Problem with subfunction within lsqnonlin??
2 次查看(过去 30 天)
显示 更早的评论
I got the following error which involves matlab not knowing how to multiply a scalar with a sparse structure (which is just another number). Does anyone know what is going on?
Error using * MTIMES is not supported for one sparse input and one single input.
Error in trdog (line 30) grad = D*g;
Error in snls (line 315) [sx,snod,qp,posdef,pcgit,Z] = trdog(x,g,A,D,delta,dv,...
Error in lsqncommon (line 175) [xC,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msgData]=...
Error in lsqnonlin (line 237) [xCurrent,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Error in DCE_Analysis (line 35) [Pfinal, chi2] = lsqnonlin(@(P)lSqErr(insignal,inserr,tarr,AIFp,R1T,P),Pstart,Plb,Pub,options);
回答(1 个)
Steve Grikschat
2012-9-25
All values returned to lsqnonlin must be of data type double.
1 个评论
Pranav Pathak
2018-7-27
Hello Sir,
Do we have any work around for this case?
I need to pass a single datatype value to the lsqnonlin function.
With Typecasting, I am able to resolve the error but this procedure does NOT optimize the value. It stops after one iteration.
Please let me know your feedback.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surrogate Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!