2012-01-04 9 views
3

オクターブ(matlab)の問題。プログラムでは、データをプロットするループがあります。各ループの最後に、私はディスクにプロットを保存します。このプロセスでは、各プロットをオクターブ描画します。それはプロセスを遅くする。私はディスクに保存するためのプロットだけが必要です。私がそれらを表示することはできませんでしたが、ただ保存すると、プロセスがかなり加速されます。それを表示せずにプロットをハンドラに描画する方法はありますか?描くために私はscatter機能を使用します。オクターブ(matlab)、どのように表示せずにプロットを作成する?

+0

が重複する可能性の前に言ったようにgraphics_toolkit gnuplotを[MATLABでは、どのように私は、画像にプロットし、それを表示せずに結果を保存しますか?](http://stackoverflow.com/questions/963674/in-matlab-how-do-i-plot-to-an-image-and-save-the-result-without-displayed-it) – yuk

+2

これは実際には重複していません。これはMATLABではなくOCTAVEです。 – Ramiro

答えて

5

としては、私はどうしたら、this questionに答えた:

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

質問が正確に重複している場合は、元の質問へのリンクで閉じることをお勧めします。十分なポイントがない場合は、コメントにリンクを追加することをおすすめします。 – yuk

+1

オクターブでこれを行うと、ファイルにFigureを印刷しようとすると失敗します。私が目に見える図形を作成すると、それをうまく印刷できます。 – kaefert

4

これは、MathWorks社の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 –

+0

しかし' fltk'と非表示の数字を使う必要があります'error:__osmesa_print__:Octaveがビルドされたときにオフスクリーンレンダリングのサポートが無効になっていました。 –

1

OSMesaを使用するGNU Octave 4.0以来、オフスクリーンレンダリングはGNU/Linuxでサポートされています。あなたはドライバがベースとされているように、独自のOpenGLドライバが、RADEONなどのMESAベースのドライバ、ヌーボーと(基本的にはすべての自由(自由のような)を持っていない場合は

  1. :だから、今日figure ("visible", "off");... print (...)作業を取得するための2つの方法が基本的にありますOpenGLベースのツールキット(qt、fltk)を使用することができ、Octaveは印刷にOSMesaを使用します。
  2. gnuplotの使い方:の
関連する問題