如何在函数SUB MATLAB中不求元素重矩阵

如何在函数SUB MATLAB中不求元素重矩阵,matlab,Matlab,我有这个: syms X Y; F=X*Y; A=ones(2); B=ones(2); 为什么subs(F,{X,Y},{A,B})=one(2)? 如何获得2*one(2)?首先尝试一下,将X和Y初始化为符号矩阵 X=sym('X',[2 2]); Y=sym('Y',[2 2]); 这可能是一个bug,但是这里有一个简单的解决方法。正如David所说,将X和Y初始化为矩阵 X=sym('X',[2 2]); Y=sym('Y',[2 2]); 之后,您需要使用两个替换,因为有时Mat

我有这个:

syms X Y;
F=X*Y;
A=ones(2);
B=ones(2);
为什么
subs(F,{X,Y},{A,B})=one(2)?


如何获得
2*one(2)

首先尝试一下,将
X
Y
初始化为符号矩阵

X=sym('X',[2 2]);
Y=sym('Y',[2 2]);

这可能是一个bug,但是这里有一个简单的解决方法。正如David所说,将
X
Y
初始化为矩阵

X=sym('X',[2 2]);
Y=sym('Y',[2 2]);
之后,您需要使用两个替换,因为有时Matlab会将“矢量化”输入转换为符号表达式

F = X*Y;
A = ones(2);
B = ones(2);
FA = subs(F, X, A);
FAB = subs(FA, X, B);

现在如何获得
2*one(2)
subs(F,{X,Y},{A,B})
不工作
X=sym('X',[2])
Y=sym('Y',[2])
f=X*Y
A=一(2)
B=一(2)
subs(f,{X,Y},{A,B})
ans=[X1_1*Y1_1+X1_2*Y2_1,X1_1*Y1_2+X1_2*Y2][X2_1*Y1_1+X2_2*Y2_1,X2_1*Y1_2+X2_2*Y2][/code>如何插入A和B?X
和Y
的每个元素称为
Xi_j
,其中
i是行,code>Y是列。您必须单独替换每个值。你为什么要这样做,为什么不干脆做一个呢?