Matlab中@的用法

这是一段Matlab程序,请问其中x=fsolve(@qbyg,x0);是什么意思?Matlab中函数调用不是y=f(x)(y是输出,f是函数名,x是输入参数)这种形式么... 这是一段Matlab程序,请问其中 x=fsolve(@qbyg,x0); 是什么意思?Matlab中函数调用不是y=f(x)(y是输出,f是函数名,x是输入参数)这种形式么?请大神帮忙看看。

% 给定机构极限位置和最小传动角的铰链四杆机构运动设计(调用qbyg.m)
x0=[50 120 200 0.5];
k=1.25; % 行程速比系数
theta=pi*(k-1)/(k+1); % 极位夹角
yg=250; % 摇杆长度
psi=pi/6; % 摇杆摆角
gamin=2*pi/9; % 最小传动角
x=fsolve(@qbyg,x0);
disp ' ******** 已知条件 ********'
fprintf (' 行程速比系数 k = %3.4f \n',k)
fprintf (' 极位夹角 theta = %3.4f ° \n',theta*180/pi)
fprintf (' 摇杆长度 yg = %3.4f mm \n',yg)
fprintf (' 摇杆摆角 psi = %3.4f ° \n',psi*180/pi)
fprintf (' 最小传动角 gamin = %3.4f ° \n',gamin*180/pi)
disp ' ******** 计算结果 ********'
fprintf (' 曲柄长度 a = %3.4f mm \n',x(1))
fprintf (' 连杆长度 b = %3.4f mm \n',x(2))
fprintf (' 机架长度 d = %3.4f mm \n',x(3))
fprintf (' 摇杆位置角 psi0 = %3.4f ° \n',x(4)*180/pi)

% 铰链四杆机构非线性参数方程组
function f=qbyg(x)
k=1.25; % 行程速比系数
theta=pi*(k-1)/(k+1); % 极位夹角
yg=250; % 摇杆长度
psi=pi/6; % 摇杆摆角
gamin=2*pi/9; % 最小传动角
% x(1)是曲柄长度;x(2)是连杆长度;x(3)是机架长度;x(4)是摇杆初始位置角
f1=(x(2)+x(1))^2+(x(2)-x(1))^2-2*(x(2)+x(1))*(x(2)-x(1))*cos(theta)-(2*yg*sin(psi/2))^2;
f2=yg^2+x(3)^2-2*yg*x(3)*cos(x(4))-(x(2)-x(1))^2;
f3=yg^2+x(3)^2-2*yg*x(3)*cos(x(4)+psi)-(x(2)+x(1))^2;
f4=yg^2+x(2)^2-2*yg*x(2)*cos(gamin)-(x(3)-x(1))^2;
f=[f1;f2;f3;f4];
还有这后面定义的qbyg这个函数是什么情况?输入是什么,输出又是什么,如果要单独运行,应该怎么用?
展开
匿名用户
2014-08-14
展开全部
@qbyg在MATLAB被称为句柄函数(说法有点~~),主要是为了提高运行效率,因为在MATLAB里对于定义的函数有很多搜索路径,例如会先检查是不是自带的库函数,本程序已写的函数等顺序我有点分不清了,而如果用句柄函数运行就先检查该句柄函数的存储位置。具体怎么用,百度下MATLAB函数句柄,这个讲的还行
http://blog.renren.com/share/232179838/12863842977,,,,,,,,,,,,,,,,,,,,,我知道的不多,你说的单独运行还是要有这段程序的才行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小宇宙_8IM
2014-08-14 · 超过77用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:173万
展开全部
end就是数组结尾的意思,从a的第一个元素以3为间隔直到a的结尾。0.8147 、0.9134 和0.2785
追问
?没看懂……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WM_THU
推荐于2017-09-09 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3932万
展开全部
@是用于定义函数句柄的操作符。函数句柄既是一种变量,可以用于传参和赋值;也是可以当做函数名一样使用。
举例:
sin是matlab中的一个函数,但sin只是函数名,还不是函数句柄,不可以用于传参。
f = @sin;
这行代码定义了一个函数句柄,变量名是f。这样就可以当做参数传递了(这就是上面代码中的意义所在),而且还可以跟sin函数按相同的语法规则使用:
g = f; % g也是函数句柄,其“值”和f一样,都代表sin函数
y = g(pi); %可以得到y=0
追问
请问在上面一段代码中,还有这后面定义的qbyg这个函数是什么情况?输入是什么,输出又是什么,如果要单独运行,应该怎么用?
追答
我前面解释过了,@sin作为函数和sin的用法完全一样,输入输出一样,“单独”运行的方法也一样。
类似的,@qbyg和qbyg函数是一样的。
function f=qbyg(x)
...

从这一行开始到代码结束定义了函数qbyg。输入x,输出f,x到f的映射关系见函数体。
如果题主是不懂matlab里的函数定义,这是另外一个问题了,请另行提问。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式