2012-01-04 36 views
3

八度(matlab)的问题。在程序中,我有绘制数据的循环。在每个循环结束时,我将绘图保存到光盘。在此过程中,八度画出每个图。它减缓了这个过程。我只需要将地块保存在光盘上。如果我不能展示它们,但只保存一下,就会大大加速这个过程。有没有办法绘制情节处理程序而不显示它?画我用scatter函数。八度(matlab),如何创建重绘而不显示?

+0

的可能重复(http://stackoverflow.com/questions/963674 [在MATLAB中,如何绘制到图像并保存结果不显示呢?]/in-matlab-how-do-i-plot-to-an-image-and-save-the-result-without-showing-it) – yuk 2012-01-04 15:32:23

+2

这不是真的重复,因为这是关于OCTAVE而不是MATLAB。 – Ramiro 2014-06-19 15:23:16

回答

5

this question回答,我会做:

f = figure('visible','off') 
+0

如果问题完全重复,最好用指向原始问题的链接关闭它,或者如果您没有足够的分数,请在注释中添加链接。 – yuk 2012-01-04 15:31:46

+1

当我用八度音做这个时,任何尝试将图形打印到文件都失败。当我用可见的方式创建图形时,我可以很好地打印它。 – kaefert 2015-01-15 13:32:01

4

这是不是与MATLAB进行测试,并有可能仅限于八度。使用f = figure('visible','off')将不会开箱即用。

您需要选择一个适当的图形工具:

available_graphics_toolkits 
ans = 
{ 
    [1,1] = fltk 
    [1,2] = gnuplot 
} 

默认为fltk不能写,而不显示打印到文件。但是,如果选择gnuplot它就能写在不显示到文件:

graphics_toolkit gnuplot 

f = figure('visible','off') 
plot(...) 
axis(...) 
filename=sprintf('output/%05d.png',t);                   
print(filename); 

这是不是特别快,但它不使用屏幕缓冲区或捕获鼠标,其发生,如果情节需要可见。

+0

时下,'fltk'支持八度中的'figure('visible','off')':http://savannah.gnu.org/bugs/?33180 – 2017-07-05 20:48:55

+0

但是必须使用'fltk'和不可见的数字重新编译八度如果您收到'错误:__osmesa_print__:在构建Octave时禁用离屏渲染支持“ – 2017-07-05 20:55:45

1

自GNU Octave 4.0使用OSMesa以来,GNU/Linux支持离线渲染。所以,今天基本上有两种方式来获得figure ("visible", "off");... print (...)工作:

  1. 如果你没有一个专用的OpenGL驱动程序,但基于MESA司机喜欢RADEON,暴发户等(基本上都是免费的(如自由)驱动程序基于在Mesa上),您可以使用基于OpenGL的工具包(qt,fltk),Octave将使用OSMesa进行打印。
  2. 使用的gnuplot:graphics_toolkit gnuplot如之前所说