矢量化搜索函数matlab



寻找一种有效的方法对搜索进行矢量化

假设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(:))

,但这不起作用,因为两个数组的大小不同。由于

可以使用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)

最新更新