矢量化搜索功能matlab

时间:2013-03-31 05:09:09

标签: matlab search find

寻找一种有效的矢量化搜索方式

说A是2乘4阵列

 x      y     z     a
.2      0.97  34.2  4.5

和B是1乘1000阵列

a x x x x y y y z z a .........

如何为阵列B获取A的相应第2行值。寻找向量化的有效解决方案,我有一个if循环可以工作但效率不高。

由于

我目前有

A(2,A(1,:)==B(:))

但这不起作用,因为两个阵列都有不同的大小。 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用ismember函数的第二个输出,如下所示:

%Setup
A = [24 25 26 1; 0.2 0.97 34.2 4.5]
B = [1 24 24 24 24 25 25 25 26 26 1];

%Use ismember to get matching indexes
[~, ixs] = ismember(B, A(1,:))

%Use indexes to get desired result
out = A(2,ixs)