【发布时间】:2015-12-19 15:34:44
【问题描述】:
r 是一个向量:
23 1 24 5 4 3 7 8
L 是一个向量。
L=
2, 4, 6, 5, 3
我正在尝试对这段代码进行矢量化处理。由于迭代是相互依赖的(即prev_weight = prev_weight - weight_from),我无法找到一种好的矢量化方法。目标显然是最小化执行时间。
total_weight = sum(r(L));
prev_weight = total_weight;
len=length(L);
dist = 0.0;
for i=2:len-1
from=L(i);
to=L(i+1);
dist = dist + d(from,to) * prev_weight;
weight_from = r(from);
prev_weight = prev_weight - weight_from;
end
【问题讨论】:
-
d、from、to是什么? -
@Divakar:d 是距离矩阵(二维数组)。 from 和 to 相应地定义为 L(i) 和 L(i+1)。此代码估计加权行程长度。
标签: performance matlab vectorization