如何向量化这个 Matlab 循环
How to vectorize this Matlab loop
我有点困惑,需要一些帮助来向量化以下操作。
所以,我有一个 m
×2 矩阵 A
和 n
×1 向量 b
。我想创建一个 n
-by-1 向量 c
,其条目应该是 A
第二列的值,其行由对应值 [=] 的行给出14=] 会掉下来...
不确定我是否足够清楚。不管怎样,下面的代码确实正确地计算了 c
所以你可以理解我想要的输出是什么。但是,我想对该函数进行矢量化处理,因为我的真实 n
和 m
数量级为数千。
请注意 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);
我有点困惑,需要一些帮助来向量化以下操作。
所以,我有一个 m
×2 矩阵 A
和 n
×1 向量 b
。我想创建一个 n
-by-1 向量 c
,其条目应该是 A
第二列的值,其行由对应值 [=] 的行给出14=] 会掉下来...
不确定我是否足够清楚。不管怎样,下面的代码确实正确地计算了 c
所以你可以理解我想要的输出是什么。但是,我想对该函数进行矢量化处理,因为我的真实 n
和 m
数量级为数千。
请注意 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);