みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

fortranからgnuplotへ

gnuplot4.4.2を使って、グラフを書いております。

座標の情報は、ファイルから読み込みを行います。
ファイルの中身は、コンピュータで計算させたため、

0.1098998*10^-2

の表示が、

( i ) 0.1098998D-02

となっております。
この表で書かれたデータがあまりにもたくさんあるため、すべてを

( i i ) 0.1098998e-2

と直すのは、正直面倒です。
そこで質問なのですが、
(1)
上記を表示のまま、gnuplotでグラフを書くためにはどうすればよいのでしょうか。
もし、( i ) の表記をどうしても (i i ) のようにしなければならな場合、コンピュータの計算の結果をそのままgnuplotで書きたいと思います。
(2)
現在fortran77 ( 実際は、fortran95 に対応しておりますが、77の範囲でプログラムを書いております ) を使って、計算をしております。
計算結果をそのままグラフにするためのプログラムはどのようにしたらよいのでしょうか。

どなたか、(1)か(2)の質問をヒントだけでもいいので教えてください。

投稿日時 - 2010-11-21 06:38:40

QNo.6333354

困ってます

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

(1) (i)のままでは無理です。

> この表で書かれたデータがあまりにもたくさんあるため、すべてを
> ( i i ) 0.1098998e-2
> と直すのは、正直面倒です。

とありますが、Unix系OSのtrやsedコマンドを使えば一発で変換できます。
sed 's/D/e/g' original_data > new_data

Windowsでも、Mingw等の移植版を利用するとか、同等の処理ができるPerlを使うとか、の方法があります。

あるいは、fortranができるなら、fortranでDをeに置換するプログラムを作れば済むことです。


ついでに。
Makefileでルールさえちゃんと作くれれば、という前提付きですが、データが複数あろうが、makeコマンド一つでgnuplotでのグラフ作成まで(あるいは、その後の処理,例えば、LaTeXで取りこみ→PDFに変換、とかまで)実行させることも可能です。

(2) fortranからgnuplotを使うライブラリは複数あるようです。
私は使ったことなので詳細はわかりません

投稿日時 - 2010-11-21 15:26:52

お礼

ご回答ありがとうございました。

>fortranができるなら、fortranでDをeに置換するプログラムを作れば済むことです
あ、すいません。
DをEにすると、「単精度で計算させたの」って言われそうだったので、Dのままではムリかなぁって思い質問しました(書いてなくてすいません)。

いずれにせよ、やはりE表示にしないといけないみたいですね。

投稿日時 - 2010-11-22 10:15:26

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

> DをEにすると、「単精度で計算させたの」って言われそうだったので

それはさすがに杞憂じゃないですかね?

他の言語では、Dを使っていないですし。
仮数部にも十分な桁がありますし。
Dとあっても、単精度で計算→表示の直前で倍精度に変換 って可能性が0ではないし。

投稿日時 - 2010-11-22 19:14:47

あなたにオススメの質問