2014-12-01 186 views
0

我已经建立2 * 2大小的变量向量,我想一些值分配给他们,在我的计划进一步使用它们,但我不知道该怎么办呢如何为MATLAB中的变量赋值?

Rho= sym('Rh0',[2,2]); 
abc= [1 2; 5 6]; 

我的期望在输出是

Rho1_1=1 
Rho1_2=2 
Rho2_1=5 
Rho2_2=6 

可以有人帮我解决这个问题吗?

回答

0

以下工作;使用num2cell到阵列单元阵列进行转换,然后使用多个索引,以“交易”与单元阵列内容的变量:

clear 
clc 

abc= [1 2; 5 6]; 

abcCell = num2cell(abc'); %// Note the transpose; needed to get correct order. 

[Rho1_1, Rho1_2,Rho2_1,Rho2_2] = abcCell{:} 

给予这样的:

Rho1_1 = 

    1 


Rho1_2 = 

    2 


Rho2_1 = 

    5 


Rho2_2 = 

    6 
+0

谢谢@Benoit。但如果我有类似625变量的东西,我必须从字面上输入它们来执行'deal'命令?即您的代码的第三行。我不能直接在左侧指定一个向量来为这个625个变量的向量赋值? – user3218696 2014-12-02 04:41:48

+0

mhh那么它会更复杂一点。您可能需要查看使用结构的动态字段索引,或者定期循环可以完成这项工作。没有关于你的数据的更多信息,这有点难以分辨。 – 2014-12-02 13:51:32

0
rho = sym('r',[2,2]); 
r1_1 = 1; 
r1_2 = 2; 
r2_1 = 5; 
r2_2 = 6; 
subs(rho) 

吐出来

ans = 

    1  2 
    5  6