现在,我正在读取文件夹并获取一些绘图日志。我大约有95个,然后解析日志和plot2d,然后为日志中的位置设置动画。需要花费几分钟才能打开所有绘图窗口。我目前正在使用SCF打开一个新的绘图窗口。它并没有到达第95个情节,也没有做任何动画,因此它似乎快要死了,但是控制台上没有任何输出。我正在使用Scilab 6.0
这就是我创建情节的方式。我根据文件夹中有多少日志进行遍历。
scf(newFolderIndex);
plot2d(xPosition,yPosition)
xtitle(logFolders(newFolderIndex))
我认为您实际上并不需要100多个窗口,您无法有效地查看它们。您可以执行以下两项操作来防止冻结,并可能加快处理速度:仅打开一个图形窗口(例如0),然后:1.绘制数据2.保存到文件中3.清除间隙窗口4.从1开始重复。
为了加快绘图过程,您可以延迟drawlater()
屏幕上的实际显示,直到绘制最后一个图形元素,然后发出drawnow()
。如果您有很多数据点,尤其是多个plot()命令,则可能会产生很大的不同。
for i=1:3
scf(0); //set current figure
clf(0); //clear figure
drawlater(); //inhibit actual display on the screen
plot2d(rand(100,1),rand(100,1),style=-4);
xtitle(string(i));
drawnow(); //display now
xs2png(0,"D:\Attila\PROJECTS\Scilab\Stackoverflow\"+string(i)+".png"); //save to file
//there are other file formats also, search for xs2jpg, xs2gif...
end
使用图像查看器程序观看保存的文件非常方便,然后在多个图形窗口之间切换。该方法的另一个优点是,如果您调整图形窗口的大小并重新运行程序,则所有图形将具有相同的大小。(但是您当然可以使用明确指定窗口大小f=gcf(); f.figure_size=[200,200];
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句