看板 MATLAB 關於我們 聯絡資訊
代碼在最下面 內容不複雜但卻帶兩個迴圈 想問的問題是 對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 ===================================================== -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.193.64 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1403690785.A.76D.html
sunev:s=accumarray(a(:,1),a(:,2)) 06/25 18:30
tomichy:真的太夭壽了 我說 thx! 06/25 21:13