フィルターのクリア

Plotting in Multiple Figures inside Loop

105 ビュー (過去 30 日間)
Kyle
Kyle 2011 年 7 月 14 日
コメント済み: Monowar Hossain 2022 年 8 月 17 日
I'm trying to plot data on two different figures within a loop. When I do this, the computer flashes between the two figures in each iteration, which slows down the program considerably. Is there a way to hide the figures until the loop is finished?
for i = 1:100
...
figure(1)
plot(data1, data2)
figure(2)
plot(data1, data3)
end
  1 件のコメント
Monowar Hossain
Monowar Hossain 2022 年 8 月 17 日
Here, what is the point of looping ?

サインインしてコメントする。

採用された回答

Patrick Kalita
Patrick Kalita 2011 年 7 月 14 日
Calling the figure command will cause the graphics queue to flush (basically like a drawnow call). That's what is slowing the program down. Instead of calling figure, you can get the same effect -- without the implicit drawnow -- by setting the root's CurrentFigure property:
f1 = figure;
f2 = figure;
for i = 1:100
...
set(0, 'CurrentFigure', f1)
plot(data1, data2)
set(0, 'CurrentFigure', f2)
plot(data1, data3)
end

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2011 年 7 月 14 日
Yes; build you data1-3 vectors inside the loop and then plot once after it.

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by