[讨论] 请帮看代码可有机会简化或加速?

楼主: tomichy (tomichy)   2014-06-25 18:06:19
代码在最下面 内容不复杂但却带两个循环
想问的问题是 对a矩阵的特定元素做取和这件事
在矩阵a size变大或另外再加上loop后 时间难免暴增
写法上 有没有办法改成不需 for-end loop
或者减少一个for-end loop的可能性?
谢谢您的回答
=====================================================
clear all;clc;
a=[1,1,2,2,2,3,3,3,3,4,5,5,5,5,5;1,3,4,5,7,3,4,8,9,13,21,31,41,51,67]'
s=zeros(max(unique(a(:,1))),1);
for j=1:max(unique(a(:,1)));
bb=find(a(:,1)==j);
[cc dd]=size(find(a(:,1)==j));
for jj=1:cc;
s(j,1)=s(j,1)+a(bb(jj),2)
end
end
a
s
=====================================================
作者: sunev (Veritas)   2014-06-25 18:30:00
s=accumarray(a(:,1),a(:,2))
楼主: tomichy (tomichy)   2014-06-25 21:13:00
真的太夭寿了 我说 thx!

Links booklink

Contact Us: admin [ a t ] ucptt.com