矩阵中的Matlab替换不起作用

问题描述 投票:0回答:1

以下matlab代码在哪里出错?

C=sym('a',[2,1]);
A=sym('aa',2);

A(1,1)=C(1);
A(2,2)=C(2);

subs(A(1,1),C(1),solve(trace(A)==1,C(1)));

disp(A);

据我所知,A的对角元素设置为a1和a2。然后,在位置A(1,1)(它是a1)的表达式中,用C(1)(也是a1)代替,变量C(1)的trace(A)== 1的解(这是1-a2)。但是,当您显示矩阵A时,它似乎没有变化。

怎么了?上面是大代码的最小非工作示例。

matlab substitution
1个回答
0
投票

据我所知,您尝试用求解方程式的结果替换A(1,1)处的元素。在这种情况下,您应该执行以下操作:

C = sym('a',[2,1]);
A = sym('aa',2);
A(1,1) = C(1);
A(2,2) = C(2);
A(1,1) = subs(C(1),solve(trace(A) == 1, C(1)));
disp(A);

这将显示以下内容:

[ 1 - a2, aa1_2]
[  aa2_1,    a2]
© www.soinside.com 2019 - 2024. All rights reserved.