根据行内容分配行名称

时间:2015-07-01 12:23:08

标签: matlab

有一组名称和一个矩阵(它的元素只有零和1) 矩阵的每一行都应根据其值分配给名称。

让我举一个例子:
数组是:

[1 0 0;
 0 1 1;
 1 1 1] 

名称集合为:
Alex=[1 1 1], John=[1 0 0], Christine=[0 1 1]

功能输出应返回:

John, Christine, Alex 

MATLAB中是否有以此模式搜索的功能?

1 个答案:

答案 0 :(得分:3)

你的示例数据没什么意义,所以我会假设不同的东西。考虑

Arr = [1 0 0;
       0 1 1;
       1 1 1;
       0 1 1];

Names = {'Alex';
         'John';
         'Christine'};
Key = [1 1 1;
       1 0 0;
       0 1 1]

然后您可以使用ismember,如下所示:

idx = [~, idx] = ismember(Arr,Key,'rows');
Names(idx)

将返回

'John'
'Christine'
'Alex'
'Christine'