我可以叫什么 发表于 2016-6-15 17:51

MATLAB匿名函数的一个变量替换成其它变量表达式的问题

简单的举例,比如我先建立一个匿名函数:f=@(x,y)x+y。这样f=x+y,后面我需要将x用其它变量的表达式进行替换,比如x=a+b,即要将f变成a+b+y,那么直接就为f1=@(a,b,y)f(a+b,y);这种方法比较直接,但是我现在用来替换x的表达式很复杂,匿名函数也比较复杂,这样做就不是很方便了。哪还有其他的方法进行替换吗?类似于符号计算中的subs这种功能。

衫衫学长 发表于 2016-6-17 22:27

Matlab是有subs功能的。。。。

R=subs(S)  %将表达式S中的所有变量用调用的函数或MATLAB workspace中获得的值进行置换,将置换后的表达式赋给R;
R=subs(S,new) %用new置换表达式S中的自变量后在赋给R;
R=subs(S,old,new) %用new置换表达式中的old,然后将置换完的表达式赋给R。
通过help subs搜索matlab自带的帮助
页: [1]
查看完整版本: MATLAB匿名函数的一个变量替换成其它变量表达式的问题