繁体   English   中英

加速向量求和

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM