【发布时间】:2015-04-27 08:15:26
【问题描述】:
给定两个向量X和Y,长度为n,代表平面上的点,以及邻域半径rad,有没有一种向量化的方法来计算点的邻域矩阵?
换句话说,是否可以对以下循环(对于大型 n 而言非常缓慢)进行矢量化:
neighborhood_mat = zeros(n, n);
for i = 1 : n
for j = 1 : i - 1
dist = norm([X(j) - X(i), Y(j) - Y(i)]);
if (dist < radius)
neighborhood_mat(i, j) = 1;
neighborhood_mat(j, i) = 1;
end
end
end
【问题讨论】:
-
只是好奇 - 这里列出的任何方法对您有用吗?如果有,考虑接受吗?
-
@Divakar 是的,一切都做得很好;最后我选择了 bsxfun。很抱歉延迟接受,我离开了一段时间。
-
啊,没关系!很高兴看到
bsxfun再次成功!
标签: performance matlab matrix vector vectorization