数値計算の結果を実行時にgnuplotに渡す

数値計算の結果をデータファイルにして、gnuplotでグラフにする。

このときに、地味に面倒なのが、データファイルのいるディレクトリをコピーして、それをgnuplotに渡す作業。

このイライラを解消するために悪戦苦闘(と言っても、popen使えば良いだけなので、単に自分が情弱なだけorz)。

んで、「ついでに、pngファイルも自動で作らせてしまえ」と思い、さらに時間を浪費(主に打ち間違いが原因で無駄な時間を過ごす)。

 

この作業をプログラムで組めないかとあれこれ調べ、関数を作るまで至った。

それがこれ↓

f:id:lightology:20170404233635p:plain

pngファイルの名前を作るのに、無駄にプログラムが長くなってる印象。

(※2017/4/23追記:for文にすれば6行を3行に減らせる)

この名前の付け方を少し説明すると、数値計算のデータファイル名を、例えば"test.dat"としたときに、pngファイル名を"test.png"にしたかった。

だから、"test"の部分だけ抜き出すために、配列spng[]を用意して、そこに"."が現れるまでコピー。

で、最後にナル文字"\0"を追加。

 

ちなみに、自分はwindowsでやってるので、_popenだけど、Linuxとかだとpopenだったはずなので、そこは変更しないといけない。

ヘッダファイル作って、互換性保てるようにしたいなぁ・・・

 

あと、どういうグラフを書かせたいかによって、いじらないといけないので、これは試用という感じだな。