如何在 MATLAB R2009b 中创建由符号元素组成的矩阵?
这样做的乏味方法是:
syms a11 a12 a21 a22
A = [a11 a12; a21 a22]
但如果我想要一个 10x10 矩阵,我需要更好的东西。
在这里,我找到了以下命令:
A = sym('A%d', [2 2]);
但当我使用 R2009b 时,它似乎只适用于最新版本的 MATLAB。
一种不太有效的方法是编写一个脚本来创建一个字符串并使用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)