我有以下八度脚本,
TOTAL_POINTS = 100;
figure(1)
for i=1:TOTAL_POINTS
randX = rand(1);
randY = rand(1);
scatter(randX, randY);
hold on;
endfor
当我通过octave script.m
运行时,我什么都没得到。当我将行pause
添加到此脚本的末尾时,它可以正常工作,但我只能在绘制所有100
点后看到该图。
我希望逐点看到情节。在我绘制每一点之后。
PS:我有Ubuntu
。
答案 0 :(得分:6)
尝试在迭代结束时添加drawnow
。至少在Matlab中有效。它强制解释器清空图形事件队列。
如果在迭代结束时包含pause
,则可能不需要drawnow
(pause
已清空事件队列)。但我通常会添加它以防万一。
其他评论:
hold on
。一开始就能做到这一点。通过这些修改,您的代码将成为:
TOTAL_POINTS = 100;
figure(1)
hold on;
axis([0 1 0 1]) %// set axis
axis manual %// prevent axis from auto-scaling
for i=1:TOTAL_POINTS
randX = rand(1);
randY = rand(1);
scatter(randX, randY);
pause(.1) %// pause 0.1 seconds to slow things down
drawnow
endfor