1

如何在 MATLAB R2009b 中创建由符号元素组成的矩阵?

这样做的乏味方法是:

syms a11 a12 a21 a22
A = [a11 a12; a21 a22]

但如果我想要一个 10x10 矩阵,我需要更好的东西。

在这里,我找到了以下命令:

A = sym('A%d', [2 2]);

但当我使用 R2009b 时,它似乎只适用于最新版本的 MATLAB。

4

1 回答 1

2

一种不太有效的方法是编写一个脚本来创建一个字符串并使用eval.

cmd_var = 'syms';
cmd_mat = 'A=[';
for i = 1:3
    for j = 1:3
        var = sprintf(' a_%d_%d ',i,j);
        cmd_var = [cmd_var var];
        cmd_mat = [cmd_mat var];
    end
    cmd_mat = [cmd_mat ';'];
end
cmd_var = [cmd_var ';'];
cmd_mat = [cmd_mat '];'];

因此,命令字符串如下所示:

cmd_var =
syms a_1_1  a_1_2  a_1_3  a_2_1  a_2_2  a_2_3  a_3_1  a_3_2  a_3_3 ;

cmd_mat =
A=[ a_1_1  a_1_2  a_1_3 ; a_2_1  a_2_2  a_2_3 ; a_3_1  a_3_2  a_3_3 ;];

现在执行命令字符串:

eval(cmd_var)
eval(cmd_mat)
于 2012-04-24T00:37:07.967 回答