1、sub指令的功能语法 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自带的帮助信息进一步学习。下面是用help subs搜索到的subs帮助信息。

3、符号-符号置换 在这一步,我们先用符号表达式置换符号表达式,演示一下subs的具体功能。上一步生成的符号函数f中有sin(x),这一步我们先用log(y)将其置换。其置换指令为:f1=subs(f,sin(x),'log(y)'),其置换结果如下图所示:

5、用数字置换所有变量(含符号数字) 自这一步中我们将所有变量被数字(至少一个符号数亨蚂擤缚字,例如π在matlab中表示为pi)置换,这个时候我们来看一下结果是否仍为符号对象型的。置换指令代码: f3 = subs(f,{a,b,x},{2,5,sym('pi/3')}) 注意这一步里面我们用到了胞元数组,关于胞元数组的用法可以参见我的另外一篇经验《如何使用matlab中的胞元数组》,这里就不再重复介绍了。上面指令的意思是:用2置换a,用5置换b,用sym('pi/3')置换x。下图是运算结果:

7、单个变量被数值数组置换 在上一步中我们可以得出结论:当所有变量被双精度数值数字置换时,其计算结果也为数值型(double)。现在我们看一下另外一种情况,即一个变量被双精度数组置换,此时计算结果的类型将是什么结果?这里我们就用数组[0,pi/1,pi]来置换变量x,再查看结果类型。其计算代码为: f5=subs(f,x,[0,pi/2,pi]) 计算结果如下图所示:

9、结果函数的图形 下面画出所有变量被数值数字置换(有一个是数组)后结果函数的图形(用代码“plot(t,f6)”画出):

11、一次置换和两次置换的结果图 我们在一张图里面用两个子图画出一次置换和两次置换的结果图,看看他们有什么不同?画出的结果图如下:从图上我们可以看出,一次置换只能产生一条曲线,而两次置换却能产生一次列的曲线,在本次计算的两次置换中共产生了16条曲线。多次置换的这一结果也是subs置换指令在符号表达式双精度数值计算转换中的特殊功用。
