[已答复] 请问@中的两个变量具体代表什么意思?

[复制链接]
Gideon2017 发表于 2020-11-25 11:34:03
a=1;b=1;Rg=1;
T=linspace(1,100,50);
p=T.^2;
f=@(v,yy)Rg*T./v-p;
v=fsolve(f, ones(size(T)), [ ], T);

1,f=@(v,yy)里的yy是我随便写的,为什么下一步也可以把v给求解出来?

2,v=fsolve(f, ones(size(T)), [ ], T);括号中的4部分是不是分别代表:f函数,初值,求得的结果形式也就是矩阵的形式,结果的数量?

2 条回复


Gideon2017 发表于 2020-11-25 17:02:21
为什么括号里要有两个变量?而且即使顺序互换,也不影响结果输出

TouAkira 发表于 2020-11-26 22:06:34
符号用法直接去看帮助文档MATLAB 运算符和特殊字符
@       
名称:at 符号
用法:
    函数句柄构造和引用
    调用超类方法
说明:@ 符号可为跟在 @ 符号后面的命名函数或跟在 @ 符号后面的匿名函数构造函数句柄。您也可以使用 @ 从子类中调用超类方法。
示例
创建命名函数的函数句柄:
fhandle = @myfun
创建匿名函数的函数句柄:
fhandle = @(x,y) x.^2 + y.^2;
从子类中调用 MySuper 的 disp 方法:
disp@MySuper(obj)
使用正在构造的对象从子类中调用超类构造函数:
obj = obj@MySuper(arg1,arg2,...)


1.你的函数表达式只含有v一个自变量,其他都是常数(并不含名为yy的自变量),所以求的是v,后面那个不参与计算的yy根本没影响;

2.不是,能问出这种问题来说明你就没看fsolve函数的帮助文档。
括号里面依次是待求函数、初值、求解器的优化选项的参数、待求函数除了第一个自变量之外的其他变量的值(但因为yy根本不参与运算所以这第四个参数随便怎么写都没有实际影响)。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表