2014-12-01 79 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