MATLAB的代入命令:代入(subs)
在MATLAB中,将一个代数式代入另一式中的操作命令为subs。它的用法比较灵活,而且适用范围广泛。基本使用格式为:
SS=subs(S,OLD,NEW)
上式中各参数的含义如下。
OLD:代数式S中的将要被替换的旧变量名。
NEW:将要替换OLD的变量或代数式。
SS:替换后的新代数式。
例题 将f=ax2+bx+c中的变量x分别替换为y、m+nt。
>> syms x a b c y m n t
f=a*x^2+b*x+c;
ansf=subs(f,x,y)
ansff=subs(f,x,'m+nt')
ansf =
a*y^2 + b*y + c
ansff =
c + a*(m + nt)^2 + b*(m + nt)
另外,在使用MATLAB中的subs命令时,会发现系统按SS=subs(S.OLD,NEW)的命令格式执行,却没有结果或是错误结果。因为很可能是:MATLAB为了与以前的版本兼容,subs命令的格式变为SS=subs(S,NEW,OLD)。如果是这样,那就要按后面的命令格式进行计算了。
如果要替换的变量也是系统按独立变量规则确定的变量,则subs命令的使用格式可简化为:SS=subs(S,NEW)。因此,可以试试前面例子中两个subs命令中的参数x是不是均可以省略不写。
如果代数式S中的任意变量在用subs命令前已经被赋值,则不管是数值型还是字符型,命令subs(S)都将其具体值代入相应变量,完成替换并进行相应运算,例如下面的程序内容:
>> syms a b c x y
f=a*b+c/x*y;
a-'we';
b=1;
c=4;
x='aw';
y=5;
subs(f)
ans =
a + 20/aw
subs命令不但可以进行单一变量的格式替换,还可进行多个变量的同时替换和多个矩阵的同时替换。它们的替换命令格式完全相同,只是进行替换新变量时要分别用大括号({})括起来,
例如下面的程序内容:
subs(cos(a)^2+cos(b)^2.{a,b},{'alpha',2})
ans=cos(alpha)^2+cos(2)^2
>> subs(exp(x*y),'y',-magic(3))
ans =
1.0e+258 *
0.0000 2.5422
subs(x*y,{x,y},{[0 5 1;6 -7 3],[2 -3 5;8 -5 1]})
ans=
-15 5
48 35 3