Re: [問題] 請教即時繪圖越畫越慢之問題已回收

看板MATLAB作者 (ggyy￾NN N )時間14年前 (2010/06/07 23:51), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《cosmosQQ (成也風雲敗也風雲)》之銘言: : 想請教一下 : 當我們在plot點時候 要保留之前的點 : 會開個 hold on : 之後我在一個回圈裡 資料處理完 會送x,y 去畫點 : plot(x,y); : drawnow : 點出現的速度 一開始還算流暢 : 但到後面 越來越無力..變很慢 : 這該如何去改善呢 : 怎樣均速繪出點 由於你不斷的畫,我猜MATLAB會不斷的資料疊上去,造成記憶體龐大負擔而變慢。 我個人解法是每次都畫且不要用hold on重劃,而是第一次畫個虛點 haxes = plot( 0 , 0 ); 然後再來用 set( haxes , 'XData' , XArray , 'YData' , YArray ) 的方式去畫,你只要一直更新XArray跟YArray的內容即可,速度會快很多。 例如 % upon data in XArray = [ XArray newx]; YArray = [ YArray newy]; set( haxes , 'XData' , XArray , 'YData' , YArray ) % end of update 我都用這方法從硬體即時擷取資料並即時畫出來,一般來說5~10Hz應該沒問 題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.198.181.16

06/08 16:13, , 1F
感謝建議 來去試試
06/08 16:13, 1F

06/08 16:59, , 2F
目前畫三百個點 大概省三四成時間 有突破
06/08 16:59, 2F

06/08 17:00, , 3F
如果有更快 方法更好 , 應該是得換c寫了 囧
06/08 17:00, 3F

12/16 13:00, , 4F
大推阿
12/16 13:00, 4F
文章代碼(AID): #1C3HM9xL (MATLAB)
文章代碼(AID): #1C3HM9xL (MATLAB)