Octaveのprintコマンドでデータ点数が多い場合の処理の遅さについて

このQ&Aのポイント
  • Octaveのprintコマンドを使用して画像を出力する際、データ点数が少ない場合には数秒で処理が完了しますが、データ点数が多い場合には数分かかります。
  • 処理の遅さの原因はprint関数で呼び出しているgcwin32c.exeがCPU使用率50%を示しているためです。
  • 解決方法としては、JPGSAVEやImageMagickなどのライブラリをOctaveのパッケージとして組み込み、それを使用する方法があります。具体的な組み込み方法については、ドキュメンテーションを参照してください。
回答を見る
  • ベストアンサー

Octaveのprintコマンドについて

質問を拝見いただき、ありがとうございます。 掲題の件につきまして、質問があります。  先に私のoctave環境について記載いたします。 [環境]  octave version 3.4.3  mingw i686コンパイル  gnuplotでのplot  setenv(’GNUTERM’,’windows’)  CPU dual2core メモリ4GB [質問内容]  plotした画像を出力するために  printコマンドを使用しております。    print -djpg filename.jpg  その際、データ点数が1000点数などのような小規模での  print出力では数秒でjpgファイルを出力しますが、  データ点数が数万のような規模をplotする場合、  数分かかります。  print関数で呼び出しているgcwin32c.exeが、CPU使用率50%を  示し、数分かかるという処理の遅さのためよい解決方法を  探しております。  JPGSAVEや、ImageMagickといったOctaveに組み込めそうなのは  見つけましたが、浅学のため組み込み方もわかりません。  上記の解決方法について、上記のようなライブラリ?ソフト?を   Octave pacageで組み込める(pkg listののち、pkg load)まで  できる方法などを、詳細にお教えいただけますと幸いです。  よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

少し答え方が雑になってしまいますが了承ください。 wait + 数字 で自分の意志でそのものの実行を遅らせるというものです 例        wait 100 ; 十秒遅らせられる これでできなかったらすみません

anene0000
質問者

お礼

回答をありがとうございます。 waitコマンドありがとうございます。 どうやらoctaveのgnuplotとwindows間での相性が悪いようで、 GNUTERM部分をいじることで解消することができました。 ありがとうございます。

関連するQ&A

  • Octaveのplotのグラフが保存できない

    GNU Octaveのplot関数に関する質問です。 plot関数でグラフを作成することはできたのですが、グラフの保存ができません。 Save AsをクリックしてSaveをクリックしても何も出力されないし、ファイル名を変えるとSaveボタンが押せなくなります。

  • AutoCadのプリント出力について

    AutoCadのプリント出力についてお願い致します。数多くの図面を出力する場合、1枚ずつPLOTコマンドからプリント出力するのに時間がかかりますよね。なにか、もっと簡単にすばやく連続にプリント出力する方法があれば教えてください。

  • Octaveで画像が読み込めない(imread)

    Octaveで画像読み込みコマンド img = imread('IMG_0614.jpg'); と打つと, error: imread: invalid image file: /usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct: failed to load: dlopen(/usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct, 2): Library not loaded: /usr/local/lib/libGraphicsMagick++.3.dylib Referenced from: /usr/local/Cellar/octave/3.8.1_1/lib/octave/3.8.1/oct/x86_64-apple-darwin14.1.0/__magick_read__.oct Reason: image not found error: called from: error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/private/__imread__.m at line 181, column 7 error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/private/imageIO.m at line 66, column 26 error: /usr/local/Cellar/octave/3.8.1_1/share/octave/3.8.1/m/image/imread.m at line 107, column 30 というエラーが出て,画像を読み込めません。 コマンドは,ファイル'IMG_0614.jpg'のあるディレクトリで実行しています。 少し調べてみて,「imageパッケージがインストールされていない」のかもしれないと思い, pkg install -forge image と打ちましたが, error: the following dependencies were unsatisfied: image needs octave >= 4.0.0 と,Octaveのバージョン4.0.0が必要と出てきました。 そこで,Octaveのダウンロードサイト http://wiki.octave.org/Octave_for_MacOS_X を見ましたが,3.8が最新バージョンみたいで,4.0はありませんでした。 とにかく困っています。 Octave で imread を使うにはどうしたらいいのか, 何か良い方法があれば,教えてください! よろしくお願いしますm(_ _)m ちなみに環境は,Mac OS X Yosemite 10.10.2です。

  • gnuplotについて

    以前、こちらでgnuplotのデータをファイルに出力する方法を教えていただいたものです。 以下のようにやってみたのですが、 gnuplot> set yrange [0:5] gnuplot> plot "h1.txt","h4.txt" gnuplot> set terminal postscript eps Terminal type set to 'postscript' Options are 'eps noenhanced monochrome blacktext \ dashed dashlength 1.0 linewidth 1.0 defaultplex \ palfuncparam 2000,0.003 \ butt "Helvetica" 14' gnuplot> set output 'h20.eps' gnuplot> replot epsファイルが出来ただけで、開くことが出来ません。 開こうとすると『作成元のプログラム名が必要です。インターネットで自動的にプログラムを検索するか、またコンピューターにあるプログラム一覧から手動で選択してください。』と出ます。 どうすれば、開くことが出来るのでしょうか? 印刷のためのファイルなので、開くことは出来ないのでしょうか?

  • ズバリ巨大プリント 3

    ズバリ巨大プリント 3 PDF出力できますか?それとも保存ファイルをPDF変換する方法ですか? 例えば、A0サイズの場合、ファイルを分割してPDF変換してから印刷でしょうか?手順が知りたいです。 ※OKWAVEより補足:「ソースネクスト株式会社の製品・サービス」についての質問です。

  • CGIからsystem("display test.png");を呼び出すとエラーがでるのですが、なぜでしょうか。

    CGIについて質問させていただきます。 初めてCGIでWEBアプリを作っているところです。ちなみにPerlも、初めて勉強しはじめました。私が作りたいものは、CGIから、GNUPLOTを使って画像を出力するものです。 error display: unable to open X server `'., referer: http://.... コードは以下のようなものです。 #!/usr/bin/perl -w use HTML::Template; use strict; gnuplot no syhori.... system "gnuplot /DS/tmp/gnuplot.plot"; system "cd/DS/tmp;ps2pdf /DS/tmp/gnuplot.ps"; system "convert /DS/tmp/gnuplot.pdf /DS/tmp/gnuplot.png"; system "display /DS/tmp/gnuplot.png"; コマンド(display /DS/tmp/gnuplot.png)や、Perl(CGIではなくPerlだけで試しにやってみました)を実行すると正常に画像が表示されるのですが、CGIの中に書くとエラーが出てしまいます。 どなたかよろしくお願いします。

    • ベストアンサー
    • CGI
  • 主トレイからプリントできません

    TS8030を利用していますが、本体の主トレイにA4普通紙を入れPCから出力しており、出力設定の配紙トレイ・メディアのタイプは自動選択にし、A4のドキュメントを出力すると背面トレイに用紙がありませんとエラーがでてプリントできません。もちろん主トレイには用紙は入っており、プリント設定を自動選択から主トレイに指定しても同じように「背面トレイに用紙がありません」のアラートが出てプリントが出来ません。 どなたか解決方法をご存知のかたいらっしゃいませんでしょうか。 ※OKWAVEより補足:「キヤノン製品」についての質問です。

  • illustratorのプリント設定について

    プリントの設定で質問です。 現在、POPなどのデータを作る際は仕上がりサイズでアートボードを作り、塗りたしなし、 トンボなしで作っています。納品がJPGデータでトンボも塗りたしも必要ないので、社内ではそのような作り方で統一されています。 校正用のプリント設定は、左メニューの【トンボと裁ち落とし】の「トンボ」と「ページ情報」にチェックを入れた状態でプリントしています。〔参考画像あり〕 そこでちょっとだけ不便があります。 背景に色が付いている場合は問題ないのですが、背景が白の場合、トンボはあるものの仕上がり罫がないため、仕上がりサイズよりオブジェクトがどのくらい内側に入っているか、とかがちょっとわかりづらいんです。 データ上で罫線を入れて出力すればいい話ですが、納品時にその罫を削除し忘れたり...というミスが怖いので、なるべくそういうことは避けたいです。 プリントプリセットに保存しておけばプリントするときは自動的にアートボードサイズで罫線がつく、とかいった設定があれば嬉しいのですが・・・。 その設定の仕方や、他の方法でも何か良いやり方をご存知の方、ご回答よろしくお願いします。

  • gnuplotで複数csvファイルからデータ取得

    http://t16web.lanl.gov/Kawano/gnuplot/datafile3.html を読んだところ、複数のファイルから読み込む場合は、UNIXのコマンドを使えばいいらしいことはわかったのですが、 #a1.csv 1.0,2.0 2.0,4.0 3.0,6.0 #a2.csv 1.0,1.0 2.0,4.0 3.0,9.0 というファイルに対し、とりあえずpasteを利用して複数行呼び出しを行おうとしたのですが、 gnuplot> set datafile separator "," gnuplot> plot "<paste -d',' a1.csv a2.csv" using 1:2 warning: Skipping unreadable file "<paste -d',' a1.csv a2.csv" No data in plot と表示されてしまいました。 一体どのようにすれば、複数のcsvファイルを結合したものを読み込めるのでしょうか? また、Cygwin上でpasteコマンドについてちょっと実験してみたのですが、 $paste -d"," a1.csv a2.csv >output.txt とすると、 #output.txt 1.0,2.0 ,1.0,1.0 2.0,4.0 ,2.0,4.0 3.0,6.0 ,3.0,9.0 と表示されるのですが、 $paste -d"," a1.csv a2.csv とすると、Cygwin上には、 ,1.0,1.0 ,2.0,4.0 ,3.0,9.0 と表示されます。 output.txtに出力した際は、メモ帳上では、結合している部位で改行されているようには見えないのですが、ブラウザにコピペしたところ改行されてしましました。 どうやら、結合した場所に\rが入っているくさいです。 このpasteを使う方法以外にもgnuplotで扱うのにもっといい方法があるという場合はその方法も教えていただけると幸いです。 よろしくお願いします。

  • PHP の print_r( ) 関数について

    お世話になります。 上記タイトルの関数の出力形式について、添付のスクリーンショットを参考に質問させていただきます。 この関数の使い方などを調べてみると、出力の例として必ず添付写真の赤で囲ったようなものを見ます。 しかしわたしが2次元配列を作って出力したものは緑枠の中のように、内容がよくわかるようなものでなく、ただ連続して出力されています。 print_r( )関数を使うといつもこれです。 赤枠のようにきれいに出力する方法を教えていただきたいと思います。

    • ベストアンサー
    • PHP

専門家に質問してみよう