[問題] 用for loop做smoothing很慢已回收

看板MATLAB作者 (KHAKI)時間15年前 (2009/08/05 11:12), 編輯推噓2(202)
留言4則, 3人參與, 最新討論串1/1
手上有一條一維的數據 長度1800000點 (Line1) 欲將每點與鄰近四點做平均 為的是將這條數據平滑化 Line1smooth=zeros(1,length(Line1)-2); % allocate memory for i=3:length(Line1)-2 Line1smooth(i)=mean(Line1(i-2:i+2)); end 這步看似簡單 做起來卻莫名的慢 想請問板友 不知是否針對這步有加速的辦法 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.165.93.72

08/05 11:42, , 1F
有smooth指令喔..可以查一下Help
08/05 11:42, 1F

08/05 11:43, , 2F
你的例子應該可以寫成 Line1smooth=smooth(Line1,5);
08/05 11:43, 2F

08/05 13:04, , 3F
歐歐 乾蝦~
08/05 13:04, 3F

08/06 12:30, , 4F
用內插法平滑化 自己查看看內插法
08/06 12:30, 4F
文章代碼(AID): #1AUFYiMF (MATLAB)