[英]Speed-up vector summation
我在 Matlab 中有这个概念算法来在 while 循环中对向量x
的元素求和:
while y <= ythreshold
y = sum(x(x <= xthreshold));
end
假设我们添加了一个附加条件,即x
向量的大小在此循环中不断增长。 显然,我们可以预期的是,随着x
向量的大小增加,求和操作应该花费更多时间。 我想问一下我们可以采取哪些措施来提高求和的速度。
如果您能提供任何帮助,我将不胜感激。
您可以使用cumsum
来计算向量的累积和:
ySum = cumsum(x);
% logical check
lg = ySum < ythreshold;
% get last index
idx = find(lg,'last');
y = ySum(idx);
速度优势取决于x
以及您找到该值的距离。
PS:一般来说,如果你提供一个最小有价值的例子(MVE),它会很有帮助,这样人们就可以重现你的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.