0

寻找矢量化搜索的有效方法

说 A 是 2 x 4 数组

 x      y     z     a
.2      0.97  34.2  4.5

B 是一个 1 x 1000 数组

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

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

谢谢

我目前有

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

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

4

1 回答 1

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)
于 2013-03-31T06:15:20.423 回答