前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

1585 re(3):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法
2007/5/25(金)13:41 - 竹の - nolm01.iee.niit.ac.jp - 1939 hit(s)

引用する
現在のパスワード


nori> データファイルは商用ソフトウェアの書き出すもので,
nori> あらかじめgnuplotに都合のよい形式では記録できないのです.

なるほど。

nori> 使用するマシンが不特定多数なので,なるべく追加ソフトウェアなしで
nori> 何とかしたいと思い,質問させて頂きました.

なかなか制約がきつそうですね。単に gnuplot だけでは多分無理だと思います。

nori> # Windowsのコマンドでは,この要求を満たす処理が可能なのでしょうか.
nori> # バッチファイルで対処できれば,非常にありがたいのですが...

MS-Windows の標準コマンドは、テキスト処理はあまり得意ではありませんので、
やや難しそうです。MS-Windows XP ならバッチファイル中の for 文で、C の for
文のような記法も使えるようなので、その辺と FIND (または FINDSTR) の組合せ
で matome.txt のようなものを作れるかなと思ったのですが、改行なしの echo 
がないとうまくいかなそうです。

バッチファイル支援用のフリーソフトを使ったり、テキスト処理用に awk や perl
をインストールしたりすれば可能だと思いますが、そうでなければ MS-Windows 
のバッチファイルでやるのは難しいかも知れません。ただ、私は MS-Windows は
詳しくないので、他の仕組みとかを利用してもしかしたらできるのかもしれませ
んが、少なくとも私にはわかりません。

けど、なんとかバッチファイルの中だけで頑張ろうとするよりは、むしろ awk 
や perl とかを入れる方が早いような気はします。例えば gawk があれば、以下
のようなスクリプトファイル test.awk (5 行) を用意し、

----- ここから (test.awk) -----
BEGIN{ if(x == "") x=1.0 }
(fname != FILENAME){ 
    fname=FILENAME; N=fname; sub(/file_/,"",N); sub(/\.txt/,"",N); 
}
($1 == x){ printf "%d, %d\n",N,$2; next }
----- ここまで (test.awk) -----

コマンドプロンプト上で

  gawk -F "," -v x=1.5 test.awk file_*.txt > matome.txt

とするだけです。


〔ツリー構成〕

【1581】 gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/24(木)04:23 nori (433)
┣【1583】 re(1):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/24(木)12:30 竹の (467)
┣【1584】 re(2):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/24(木)17:54 nori (476)
┣【1585】 re(3):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/25(金)13:41 竹の (1657)
┣【1586】 re(4):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/28(月)18:51 松岡 (632)
┣【1588】 re(5):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/29(火)02:24 nori (492)
┣【1587】 re(4):gnuplotだけで複数ファイルの任意の行をまとめてプロットする方法 2007/5/28(月)19:05 松岡 (247)

前の画面〕 〔クリックポイント〕 〔最新の一覧〕 〔全て読んだことにする〕〔全て読んだことにして終了〕 〔終了

※ 『クリックポイント』とは一覧上から読み始めた地点を指し、ツリー上の記事を巡回しても、その位置に戻ることができます.