什么是matlab subs函数?
matlab中subs()是符号计算函数,详细用法可以在Matlab的Command Windows输入:help subs。subs()函数表示将符号表达式中的某些符号变量替换为指定的新的变量,常用调用方式为:
R = subs(S, new) 利用new的值代替符号表达式S中的默认符号。
R = subs(S) 用由调用函数或Matlab工作空间中获取的值替代了在符号表达式S中的所有当前的变量。
R = subs(S, old, new) 利用new的值代替符号表达式中old的值。old为符号变量或是字符串变量名。new是一个符号货数值变量或表达式。也就是说R = subs(S,old,new)在old=new的条件下重新计算了表达式S。这种替换第一次作为Matlab表达式被尝试,如果所有在new中的数值是双精度的,计算是以双精度算术运算进行的。讲new值转化为符号可以验证符号货变量的运算精度。
如果old和new是大小和类型相同的向量或是元包数组,每一个old的元素都将被相应新的元素替换。
如果S和old是标量,new是数组或元包数组,则扩展标量去计算一个数组结果。
如果new是个数值矩阵元包数组,替换讲运行为/智能元素/(i.e., subs(x*y,{x,y},{A,B}) returns A.*B when A and B are numeric)。
如果subs(s,old,new) 没有改变S,则将会试行subs(s,new,old)。这将为前面的版本提供向前的兼容性,消除记忆参数顺序。subs(s,old,new,0)不改变参数,如果S没有改变。
首先是调用格式:
R = subs(S)
R = subs(S, new)
R = subs(S, old, new)
其中S为符号表达式,默认的是变量x!
下面看几个例子,相信大家就是使用了!
例1:
>> syms x;
>> f=x^2;
>> subs(f,2)
ans = 4
例2:将表达式x^2+y^2中x取值为2
>> syms x y;
>> f=x^2+y^2;
>> subs(f,x,2)
ans =y^2 + 4
例3:
>> syms x y;
>> f=x^2+y^2;
>> subs(f,findsym(f),2)
ans =y^2 + 4
其中findsym(f)为查找f中所有的符号变量
例4:同时对两个或多个变量取值求解
>> syms a b;
subs(cos(a) + sin(b), {a, b}, {sym('alpha'), 2})
ans =sin(2) + cos(alpha)
例5:带入数据的值也可以是数组形式
>> syms t a;
>> subs(exp(a*t), 'a', -magic(2))
ans =[ 1/exp(t), 1/exp(3*t)]
[ 1/exp(4*t), 1/exp(2*t)]
例如: 输入subs(a+b,a,4) 意思就是把a用4替换掉,返回 4+b
也可以替换多个变量,例如:subs(cos(a)+sin(b),{a,b},[sym('alpha'),2])
分别用字符alpha替换a和2替换b,返回 cos(alpha)+sin(2)
用法很灵活,仔细看帮助,会得到你想要的形式的