2012-01-24 86 views
0

我有這樣的矩陣:如何獲得這個矩陣

S.No. A   B 
1  5268020 1756 
2  15106230 5241 
3  24298744 9591 
4  23197375 9129 

我希望得到一個矩陣,這將有兩列[X,Y]。 X將從S.No.獲得價值Y可以是1或0.例如,對於1 5268020 1756,應該有總計5268020 (1,0),即(X,Y)對和1756(1,1)對。

我怎樣才能得到這個矩陣在八度?

+0

請提供完整的必需輸出並解釋如何得到它,因爲它不清楚你想從問題中得到什麼 –

+0

@PaulR假設我在上面的矩陣中有1 2 2。然後在所需的矩陣[X Y]中,對於X == 1,我們應該有四個條目。 (X,1),(X,1),(X,0),(X,0) – Amit

回答

1

如果我正確理解你的問題,你想用重複條目(x,0)和(x,1)來填充矩陣,其中x = 1 ... 4,其中重複由在列中找到的值A和B.鑑於您提供的值將會是一個巨大的矩陣(67,896,086行)。所以,你可以嘗試這樣的事情(更換米以下,其中有用於說明目的更少的元素):

m = [1, 2, 1; 
    2, 3, 2; 
    3, 2, 1; 
    4, 2, 2]; 
res = []; 
for k = 1:4 
    res = [res ; [k*ones(m(k, 2), 1), zeros(m(k, 2), 1); 
       k*ones(m(k, 3), 1), ones(m(k, 3), 1)]]; 
endfor 

這將產生

res = 

    1 0 
    1 0 
    1 1 
    2 0 
    2 0 
    2 0 
    2 1 
    2 1 
    3 0 
    3 0 
    3 1 
    4 0 
    4 0 
    4 1 
    4 1 

出於好奇,有什麼理由不考慮矩陣像

1 0 n 
1 1 m 
2 0 p 
2 1 q 
... 

其中nmpq,在列A和B中找到的值這可能會更容易處理,不是嗎?