fsolve函数中@引入带来的问题
在MATLAB6.5运行一个程序的时候出现以下错误提示:在7.0中又可以运行出来,
y=insulator_3C(0,1)
??? Error: File: D:\matlab6.5\work\lyy\insulator_3C.m Line: 37 Column: 37
"identifier" expected, "(" found.
D:\matlab6.5\work\lyy\insulator_3C.m Line: 37 Column: 37
的语句是
=fsolve(@(x0_1) insulator_EL(x0_1,a_0,L_nm1,...
M_y1,E_b,p_0,N,E_a),pstart1,options)
exitflag1
insulator_EL是函数名,x0_1是变量,a_0,L_nm1,M_y1,E_b,p_0,N,E_a都是代入的常数,pstart1是初始值,
option设的为options = optimset('Display','iter','Jacobian','off');
到底是哪里出错了呢? 括弧不对称? =fsolve(@(x0_1) insulator_EL(x0_1,a_0,L_nm1,...
M_y1,E_b,p_0,N,E_a),pstart1,options)
是对称的啊。
是不是跟@的引入有关呢?
高手能不能介绍下函数调用时@的用法,搜索论坛好像这方面的介绍比较少。 在论坛中再搜索关键字fsolve,找到了答案,再好好研究研究。
http://www.simwe.com/forum/thread-536433-1-1.html 6.5对 @ 不太支持 6.5中改为
=fsolve(@insulator_EL,pstart1,options,a_0,L_nm1,M_y1,E_b,p_0,N,E_a);
或者
=fsolve('insulator_EL',pstart1,options,a_0,L_nm1,M_y1,E_b,p_0,N,E_a);
都是可以的。
页:
[1]