2012-04-24 91 views
1

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

这样做,这将是繁琐的方式:

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

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

Here我发现下面的命令:

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

但似乎,而我使用R2009b中的较新版本的MATLAB的只有工作。

回答

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) 
+0

这会工作,谢谢! – user16951 2012-04-24 13:57:19