Matlab中subs函数

syms x y;
subs(x*y, {x, y}, {[0 1; -1 0], [1 -1; -2 1]})
x与y是'*',不是'.*'啊,为什么会得到这个结果
ans = 0 -1
2 0

subs是matlab里用于替换的函数,syms定义参数,
subs(x*y, {x, y}, {[0 1; -1 0], [1 -1; -2 1]}),意思是用{[0 1; -1 0]里的各个元素分别替换x,用 [1 -1; -2 1]里的各个元素替换y,分别做积,“;”起到换行作用。比如用0替换x,1替换y,做积得0;由1*(-1)=-1,(-1)*(-2)=2,0*1=0
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-24
这个不是矩阵乘法,就是将X,Y 对应代入相乘得到的表达式,0*1,1*-1;-1*-2,0*1 得到结果
第2个回答  2011-09-27
呃,是么

噢。这是符号计算啊,跟数值计算不是同一个玩意儿

matlab里符号计算是调用符号计算引擎,一般是maple或者matlab_symbolic(就是mupad),而.*是matlab数值计算里才有的符号
第3个回答  2011-09-27
这里subs的替换换就是元素替换,没有矩阵替换后执行矩阵运算

你要进行矩阵运算可以这样写

>> x=sym([0 1;-1 0]);
>> y=sym([1 -1;-2 1]);
>> x*y

ans =

[ -2, 1]
[ -1, 1]追问

我知道这些,我的问题是为什么会出现这个结果?

追答

subs的替换就是元素替换,就算是带入矩阵也是执行元素运算,subs程序就是这样写的啊
SUBS Symbolic substitution.
SUBS(S) replaces all the variables in the symbolic expression S with
values obtained from the calling function, or the MATLAB workspace.

SUBS(S,NEW) replaces the free symbolic variable in S with NEW.
SUBS(S,OLD,NEW) replaces OLD with NEW in the symbolic expression S.
OLD is a symbolic variable, a string representing a variable name, or
a string (quoted) expression. NEW is a symbolic or numeric variable
or expression.

If OLD and NEW are vectors or arrays of the same size, each element
of OLD is replaced by the corresponding element of NEW. If S and OLD
are scalars and NEW is an array or cell array, the scalars are expanded
to produce an array result. If NEW is a cell array of numeric matrices,
the substitutions are performed elementwise (i.e., subs(x*y,{x,y},{A,B})
returns A.*B when A and B are numeric).

If SUBS(S,OLD,NEW) does not change S, then SUBS(S,NEW,OLD) is tried.
This provides backwards compatibility with previous versions and
eliminates the need to remember the order of the arguments.
SUBS(S,OLD,NEW,0) does not switch the arguments if S does not change.

Multiple Substitutions:
subs(cos(a)+sin(b),{a,b},[sym('alpha'),2]) or
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2}) returns
cos(alpha)+sin(2)

Scalar Expansion Case:
subs(exp(a*t),'a',-magic(2)) returns

[ exp(-t), exp(-3*t)]
[ exp(-4*t), exp(-2*t)]

Multiple Scalar Expansion:
subs(x*y,{x,y},{[0 1;-1 0],[1 -1;-2 1]}) returns
[ 0, -1]
[ 2, 0]

本回答被提问者和网友采纳
第4个回答  2012-04-02
这个结果对的啊

matlab中subs函数是什么意思?
matlab中subs()是符号计算函数,详细用法可以在Matlab的Command Windows输入:help subs。subs()函数表示将符号表达式中的某些符号变量替调用方式为:R = subs(S, new) 利用new的默认符号。R = subs(b工作空间中获取的值替代了在符号表达式S中的所有当前的变量。R = subs(S, old, new) 利用new的...

什么是matlab subs函数?
在MATLAB编程中,subs函数扮演着至关重要的角色,它是一种符号计算工具,用于在符号表达式中执行变量替换操作。这个函数的基本调用形式为subs(S, OLD, NEW),其中S代表待操作的符号表达式,OLD是要被替换的符号变量,而NEW则是替换成的新值。让我们通过四个具体实例来直观理解subs函数的工作原理:首先,...

subsMATLAB函数subs
在MATLAB中,subs函数是一个重要的工具,用于在表达式中进行符号替换。它的调用格式有三种形式:1. 当你只输入R = subs(S),MATLAB会将变量S中的符号变量替换为默认的零值。2. 如果提供新的变量值,如R = subs(S, new),函数会将S中的指定符号变量替换为new的值。例如:matlab syms x f = x^...

matlabsubs函数
Matlab中的subs函数用于符号计算中的符号替换。1. subs函数的基本功能:Matlab中的subs函数主要用于符号计算过程中进行符号替换。在符号表达式中,用户可以指定某些符号或表达式被替换为其他值。这对于求解符号表达式的特定值或简化表达式非常有用。2. subs函数的使用方法:使用subs函数的基本语法是:`subs`。...

什么是matlabsubs函数?
MATLAB中的subs函数是用于符号计算中的替换函数。MATLAB中的subs函数主要用于符号计算中,用于替换符号表达式中的变量或符号。以下是关于subs函数的 基本定义和功能 MATLAB中的subs函数用于在符号表达式中进行变量替换。这意味着,如果你有一个包含变量的符号表达式,你可以使用subs函数将表达式中的变量替换为特定...

matlab subs函数
在MATLAB中,subs()函数扮演着符号计算中的关键角色,它允许用户在符号表达式中执行变量替换操作。此函数的主要目的是将符号表达式中的特定符号变量替换成新的值,其基本调用格式为:subs(S, OLD, NEW)。这里,S代表符号表达式,OLD是待替换的符号变量,而NEW则是新的值。下面,我们将通过四种不同的调用...

MATLAB中subs是什么
subs是赋值函数,用数值替代符号变量替换函数 例如: 输入subs(a+b,a,4) 意思就是把a用4替换掉,返回 4+b。

Matlab中subs函数
subs是matlab里用于替换的函数,syms定义参数,subs(x*y, {x, y}, {[0 1; -1 0], [1 -1; -2 1]}),意思是用{[0 1; -1 0]里的各个元素分别替换x,用 [1 -1; -2 1]里的各个元素替换y,分别做积,“;”起到换行作用。比如用0替换x,1替换y,做积得0;由1*(-1)=-1...

matlab中subs函数subs(sym(f),findsym(sym(f)),a) f是一个函数,请问这...
subs是置换函数,第一参数是待置换函数,第二参数是待置换变量,第三参数是用于置换的变量 findsym是从f函数中寻找变量并返回这个变量,最后用a替代f中返回的变量

为何matlab的subs报错?
为什么matlab的subs报错?由于subs函数中的内容,其替换变量与被替换变量的要求为sym变量属性,所以,其变量属性不能为double array。分析题主给出的代码,其问题出在多了这条代码t=-5:0.01:5;完善代码,即可正常运行。其执行结果如下。

相似回答