我有一个矩阵
a = [ 1 'cancer'
2 'cancer'
3 'cancer'
4 'noncancer'
5 'noncancer' ]
我有另一个值为
的矩阵b = [ 4
5
2 ]
现在我必须将b矩阵值与a的值进行比较,输出应为
output = [ 4 'noncancer'
5 'noncancer'
2 'cancer']
我怎样才能在matlab中做到这一点?
答案 0 :(得分:5)
您可以使用ismember
:
a = { 1 'cancer'
2 'cancer'
3 'cancer'
4 'noncancer'
5 'noncancer' };
b = [ 4
5
2 ];
a(ismember([a{:,1}], b),:)
这导致
ans =
[2] 'cancer'
[4] 'noncancer'
[5] 'noncancer'
按照b
使用指定的顺序显示结果(根据后续问题的要求:In the same order, finding an element in an array by comparing it with another array)
[logicIDX, numIDX] = ismember(b, [a{:,1}]);
a(numIDX, :)
这导致:
ans =
[4] 'noncancer'
[5] 'noncancer'
[2] 'cancer'