声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1000|回复: 5

[编程技巧] fsolve函数中@引入带来的问题

[复制链接]
发表于 2008-1-17 14:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
在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
的语句是

[x_1,fval,exitflag1,output]=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');

到底是哪里出错了呢?
回复
分享到:

使用道具 举报

发表于 2008-1-17 14:35 | 显示全部楼层
括弧不对称?
 楼主| 发表于 2008-1-17 14:41 | 显示全部楼层
[x_1,fval,exitflag1,output]=fsolve(@(x0_1) insulator_EL(x0_1,a_0,L_nm1,...
   M_y1,E_b,p_0,N,E_a),pstart1,options)
是对称的啊。

是不是跟@的引入有关呢?
高手能不能介绍下函数调用时@的用法,搜索论坛好像这方面的介绍比较少。
 楼主| 发表于 2008-1-17 22:20 | 显示全部楼层
在论坛中再搜索关键字fsolve,找到了答案,再好好研究研究。
http://www.simwe.com/forum/thread-536433-1-1.html

评分

1

查看全部评分

发表于 2008-1-21 20:43 | 显示全部楼层
6.5对 @ 不太支持
 楼主| 发表于 2008-1-22 17:08 | 显示全部楼层
6.5中改为
[x_1,fval,exitflag1,output]=fsolve(@insulator_EL,pstart1,options,a_0,L_nm1,M_y1,E_b,p_0,N,E_a);

或者
[x_1,fval,exitflag1,output]=fsolve('insulator_EL',pstart1,options,a_0,L_nm1,M_y1,E_b,p_0,N,E_a);


都是可以的。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 03:21 , Processed in 0.067493 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表