如何向量化这个 Matlab 循环

How to vectorize this Matlab loop

我有点困惑,需要一些帮助来向量化以下操作。

所以,我有一个 m×2 矩阵 An×1 向量 b。我想创建一个 n-by-1 向量 c,其条目应该是 A 第二列的值,其行由对应值 [=] 的行给出14=] 会掉下来...

不确定我是否足够清楚。不管怎样,下面的代码确实正确地计算了 c 所以你可以理解我想要的输出是什么。但是,我想对该函数进行矢量化处理,因为我的真实 nm 数量级为数千。

请注意 b 的值是非整数,不一定等于 A 第一列中的任何值(这些值也可能是非整数!)。

m = 5; n = 10;

A = [(0:m-1)*1.1;rand(1,m)]'
b = (m-1)*rand(n,1)

[bincounts, ind] = histc(b,A(:,1))

for i = 1:n
    c(i) = A(ind(i),2);
end

您只需要:

c = A(ind,2);