2017-10-10 5 views
0

Ich brauche ein wenig Hilfe von Ihnen Matlab Experten.String Auswahl aus Matrix Daten

Ich habe ein Zellenfeld (Namen) mit einer Liste von 14 verschiedenen Namen. Dann habe ich eine 15x3 Matrix (Auswahl) mit einigen Zufallszahlen von 0-14.

Nun, was ich tun möchte, ist jede Zeile in der „Auswahl“ Matrix verwenden, um eine Liste der Namen auf die Anzahl in jeder Zelle entsprechend zu machen. Als Beispiel die erste Zeile ist [1 3 12] soll diese Liste von Namen {Dave Smith Niko} machen. Die dritte Zeile ist [9 2 0] und sollte in der Liste {Chris Andy} enden. Es ist in Ordnung, die Namensliste in einem kombinierten 15x3-Zellen-Array zum Beispiel aus einer Schleife herauszuholen.

Bitte helfen Sie mir diese auszusortieren. Dank

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; 
    ] 

Antwort

0

Try this:

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

Oder Variable:

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

Ergebnisse in:

ans = 
'Chris' 
'Andy' 

auf Reihe von Nullen Wenn verwendet:

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

ans = 
Empty cell array: 0-by-1