Matlab在符号矩阵中替换值

时间:2014-12-26 17:14:26

标签: matlab matrix

创建

A = sym('A', [2 2])
B = sym('B', [2,1])

产生:

A =
    [ A1_1, A1_2]
    [ A2_1, A2_2]

B = 
    B1
    B2

x = A\B给出

x = 
    -(A1_2*B2 - A2_2*B1)/(A1_1*A2_2 - A1_2*A2_1)
     (A1_1*B2 - A2_1*B1)/(A1_1*A2_2 - A1_2*A2_1)

我使用numden取出分子,然后我得到

n(1) = -(A1_2*B2 - A2_2*B1)

替换n(1)中的值,我必须做

A1_2 = 1, A2_2 = 3, B1 = 4, B2 = 6

然后使用subs(n(1))我得到答案为6。这只是一个简单的例子,说明我如何为小规模矩阵做这个。 我想要学习的是一个巨大的矩阵,有没有办法,我可以使用一些循环将A矩阵的符号等同于数值,并将其与其他数字矩阵N进行比较除外我刚刚展示的方式。 我的工作需要巨大的矩阵,并不像对x = A\B那样简单,对于直接数字矩阵,所以请不要将其作为解决方案。

1 个答案:

答案 0 :(得分:0)

这是答案,

按照符号XY的顺序排列任何数字AB

表示i = 1:2

for j = 1:2
   eval(sprintf('A%d_%d=X(%d,%d)', i,j,i,j));
   eval(sprintf('B%d=Y(%d)', i,i));
end

然后,使用subs(n)subs(d)我得到了所需的答案。