如何使用匿名函数与方程没有重新键入所有方程?

8次浏览(过去30天)
亲爱的所有,
有人知道如何使用匿名函数和已经定义的方程吗?例如,eq1 = x^2+3+y^3;索尔= @ eq1 (x, y)。我尝试了eq1(2,2),但它不像我希望的那样工作。请帮助
致以最好的问候,阿齐兹

接受的答案

马特·J
马特·J 2017年3月21日
编辑:马特·J 2017年3月21日
如果x y和eq1是符号变量,那么就没有理由将eq1包装在一个匿名函数中。只需使用subs()命令以所需的值计算eq1。例如,
>> syms xy
>> eq1 = x^2+3+y^3
eq1 =
X²+ y³+ 3
> > val =双(潜艇(eq1 (x, y), (2, 2)))
val =
15
如果你坚持用匿名函数来包装它,你可以这样做,
索尔= @ (a, b)双(潜艇(eq1 (x, y), [a, b]))
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2017年3月21日
如果从符号表达式开始,则使用matlabFunction()创建用于数值处理的函数句柄。

登录评论。

更多答案(2)

Stephen23
Stephen23 2017年3月21日
编辑:Stephen23 2017年3月21日
>> sol = @(x,y)x^2+3+y^3;
> >索尔(2,2)
ans =
15
正如文档所示:
3评论
阿卜杜勒阿齐兹Abutunis
这个问题没有必要的信息..如果没有办法做到这一点,那么我会切换到另一种技术

登录评论。


史蒂文的主
史蒂文的主 2017年3月21日
如前所述,eq1不是一个方程。X和y必须在执行"eq1 = X ^2+3+y^3;"之前定义,否则将收到一个错误。如果你想一次定义这个方程,然后再使用它,执行:
Sol = @(x,y) x.^2+3+y.^3;
注意,我使用了。^,所以你可以用一个非标量数组来调用sol,而不仅仅是一个标量。如果你需要eq1作为特定x和y值的函数值:
eq = sol(2,2)

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!