从Matrix数据中选择字符串

时间:2017-10-10 18:14:49

标签: matlab

我需要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;
  ]

1 个答案:

答案 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