2017-10-10 48 views
0

我需要Matlab專家的幫助。從矩陣數據中選擇字符串

我有一個單元陣列(名稱)與14個不同名稱的列表。然後我有一個15x3的矩陣(選擇),其中一些隨機數從0到14。

現在我想要做的是使用「選擇」矩陣中的每一行來製作與每個單元格中的數字對應的名稱列表。作爲一個例子,第一行是[1 3 12]將列出名字{Dave Smith Niko}。第三行是[9 2 0],應該在{Chris Andy}列表中。 可以從一個循環中獲取名稱列表中的15x3單元格數組。

請幫我解決這個問題。由於

Names = { 
    'Dave' 
    'Andy' 
    'Smith' 
    'Eric' 
    'Donna' 
    'Lisa' 
    'Gawin' 
    'Bill' 
    'Chris' 
    'Crystal' 
    'Beth' 
    'Niko' 
    'Conny' 
    'Clara' 
} 
Selection = [ 
     1  3 12; 
     3  6  8; 
     9  2  0; 
     4  2  1; 
     8  5  7; 
     3  2  0; 
     4  7  1; 
     4  9 12; 
     0  0  0; 
     0  0  0; 
     0  0  0; 
     0  0  0; 
     0  0  0; 
     0  0  0; 
     0  0  0; 
    ] 

回答

0

試試這個:

Names(Selection(3,Selection(3,:)~=0)) 

或者,使用變量:

rownum = 3;Names(Selection(rownum,Selection(rownum,:)~=0)) 

結果爲:

ans = 
'Chris' 
'Andy' 

如果零排使用:

rownum = 10;Names(Selection(rownum,Selection(rownum,:)~=0)) 

ans = 
Empty cell array: 0-by-1