有没有人会用matlab啊?
我在matlab2011b中输入lb=0;ub=inf;tic;options=optimset('Algorithm','levenberg-marquardt');=lsqnonlin(@(para)paraoptifun(para,wt0exp,wtexp,T),para,lb,ub,options);,出现Undefined function 'paraoptifun' for input arguments of type 'double'.Error in @(para)paraoptifun(para,wt0exp,wtexp,T)
Error in lsqnonlin (line 199) initVals.F = feval(funfcn{3},xCurrent,varargin{:});
Caused by: Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue.是什么原因啊 ?
http://meng.horse/xwb/images/bgimg/icon_logo.png 该贴已经同步到 davidzpp的微博 这个软件似乎很大,Origin似乎小些。 上面不是说了吗,需要一个double类型,即实数,你输入的是个函数paraoptifun 高天云 发表于 2013-10-9 13:34
上面不是说了吗,需要一个double类型,即实数,你输入的是个函数paraoptifun
不好意思啊,我是初学者,现在是想运行一下别人的程序,我不知道该怎么改啊,我朋友之前就是用的这个程序啊,为什么他没有问题啊?还请你不吝赐教啊。 本帖最后由 高天云 于 2013-10-10 08:15 编辑
davidzpp 发表于 2013-10-9 18:53
不好意思啊,我是初学者,现在是想运行一下别人的程序,我不知道该怎么改啊,我朋友之前就是用的这个程序 ...
=lsqnonlin(@(para)paraoptifun(para,wt0exp,wtexp,T),para,lb,ub,options);,这句话没问题。“Undefined function 'paraoptifun' for input arguments of type 'double'.”说的是lsqnonlin函数在(@(para)paraoptifun(para,wt0exp,wtexp,T))位置处需要一个实数,但你定义了一个匿名函数,该匿名函数引用了另一个函数paraoptifun(这样引用是允许的),关键错误是Matlab找不到paraoptifun函数。解决的办法是:1、确保函数paraoptifun在当前文件夹内或者在Matlab的搜索路径上。2、确保函数paraoptifun(para,wt0exp,wtexp,T)返回的是实数。
页:
[1]