【发布时间】:2016-03-23 09:58:09
【问题描述】:
假设我们有一个数组
A = zeros([1,10]);
我们有几个可能重复的索引:
indSeq = [1,1,2,3,4,4,4];
我们如何将A(i) 增加索引序列中i 的数量,即A(1) = 2, A(2) = 1, A(3) = 1, A(4) = 3?
代码A(indSeq) = A(indSeq)+1 不起作用。
我知道我可以使用以下for循环来实现目标,但我想知道是否有任何方法可以避免for循环?我们可以假设indSeq 已排序。
for 循环解决方案:
for i=1:length(indSeq)
A(indSeq(i)) = A(indSeq(i))+1;
end;
【问题讨论】:
标签: arrays performance matlab vectorization run-length-encoding