[討論] 請幫看代碼可有機會簡化或加速?

作者: 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