Figure Plot Slow

조회 수: 2 (최근 30일)
Yonghe
Yonghe 2011년 3월 4일
A Matlab program plots DATA at run time. X axis is time, DATA is an event flag we monitor. If the event happens at time 2ms, then a dot is placed (plotted) at time 2ms. For each trial, we have a sequence of the event that happened at times. Y axis is Trial number. I used ‘hold on’ to plot on the same figure as new trials coming in. The problem is: at the beginning of the plot figure (new figure), the plot goes fast, but as more trials plotted, it becomes really slow. Could someone help me on what the cause could be? How to resolve? Thank you!

채택된 답변

Walter Roberson
Walter Roberson 2011년 3월 4일
Instead of plotting more and more objects on the same plot, it is better to use scatter() and record the handle and then as more data comes in, set() the XData and YData properties of the handle to an array that includes all of the data.
h = scatter(...)
set(h,'XData', [get(h, 'XData'), newxvals], ...
'YData', [get(h, 'YData'), newyvals])
  댓글 수: 3
Walter Roberson
Walter Roberson 2011년 3월 4일
Yes, this will work fine as long as you always add the same number of x and y. The new x and y values will need to be in column vectors for this to work.
Yonghe
Yonghe 2011년 3월 7일
Update after testing:
I noticed that 'plot' runs faster than 'scatter' for my case. I used your suggestion of utilizing handler with 'plot' and the speed improved significantly.
Thank you, Walter, again!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Graphics Performance에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by