我有一个矩阵
a = [ 1 'cancer'
2 'cancer'
3 'cancer'
4 'noncancer'
5 'noncancer' ]
Run Code Online (Sandbox Code Playgroud)
我有另一个有价值的矩阵
b = [ 4
5
2 ]
Run Code Online (Sandbox Code Playgroud)
现在我必须将b矩阵值与a的值进行比较,输出应该是
output = [ 4 'noncancer'
5 'noncancer'
2 'cancer']
Run Code Online (Sandbox Code Playgroud)
我怎么能在matlab中做到这一点?
你可以使用ismember:
a = { 1 'cancer'
2 'cancer'
3 'cancer'
4 'noncancer'
5 'noncancer' };
b = [ 4
5
2 ];
a(ismember([a{:,1}], b),:)
Run Code Online (Sandbox Code Playgroud)
这导致了
ans =
[2] 'cancer'
[4] 'noncancer'
[5] 'noncancer'
Run Code Online (Sandbox Code Playgroud)
按照buse 指定的顺序显示结果(按照后续问题的要求:以相同的顺序,通过将数组与另一个数组进行比较来查找数组中的元素)
[logicIDX, numIDX] = ismember(b, [a{:,1}]);
a(numIDX, :)
Run Code Online (Sandbox Code Playgroud)
这导致:
ans =
[4] 'noncancer'
[5] 'noncancer'
[2] 'cancer'
Run Code Online (Sandbox Code Playgroud)