忍者ブログ
子曰く,之を知る者は,之を好む者に如かず. 之を好む者は,之を楽しむ者に如かず.
フリーエリア
プロフィール
HN:
miwara jon
年齢:
34
性別:
男性
誕生日:
1989/05/11
職業:
学生
自己紹介:
千葉工業大学総合工学研究会でマイコンカー作っていた人.今は,研究で音声工学を勉強している.
ブログ内検索
カウンター
アクセス解析
19
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

約半年ぶりの更新.

バッチファイルが案外使い易く,かなり便利なため,ちょっとしたものを作ってみた.
作ったのはRubyで波形を生成して,それをGnuplotでプロットするという一連の動作を行えるプログラム.
バッチファイルを起動させるだけでグラフの表示ができちゃう.
まぁ,gnuplotだけでもできそうだけど今回はバッチファイルを作るためにわざわざやってしまう.
とりあえず,Rubyコード.


sinEm = 1.0
cosEm = 1.0
sin_freq = 10.0
cos_freq = 1.0
sp = 0
cp = 0
sin_phase = sp/180*Math::PI
cos_phase = cp/180*Math::PI
TIMESTOP = 5.0
Sampling = 0.01
 
TIME = TIMESTOP / Sampling
 
file = File.open("wave.txt", 'w')
gnufile = File.open("wave.dat", 'w')
file.puts 'time wave coswave sinwave'
t = 0.0
 
for i in 0..TIME do
  coswave = cosEm*Math.cos(2*Math::PI*cos_freq*t-cos_phase)
  sinwave = sinEm*Math.sin(2*Math::PI*sin_freq*t-sin_phase)
  wave = coswave + sinwave
 
  file.print t, " ", wave, " ", coswave, " ", sinwave, "\n"
  gnufile.print t, " ", wave, "\n"
  t += STEP
end
 
file.close


sinとcosで波形を作っている.生成した波形はtxtファイルとdatファイルにして出力する.

次はバッチファイル.バッチファイルの基本は一行に1つのコマンドを記述すること.
バッチファイルを実行すると上からコマンドが実行される.


if exist wave.dat (
del wave.dat
del wave.txt
)
ruby wavegen.rb
if exist wave.dat (
gnuplot -persist waveplot.plt
)
pause


if文はC言語とかの条件分岐と一緒.if文にある exist はファイルの存在確認をするもの.
一番上のif文は

1) wave.datがあれば,
2) del wave.dat を実行
3) del wave.txt を実行
 
当然wave.datがなければ次の ruby wavegen.rb を実行する.
ruby wavegen.rb を実行後,wave.datが存在するか確認.
gnuplot -persist waveplot.plt を実行.
waveplot.plt はgnuplotのバッチファイル.グラフのフォーマットを設定でき,このファイルをgnuplotに読み込ませれば同じグラフを何度も出すことができる.
-persist はグラフを表示させ続けるためのオプション.これがないと,ウィンドウがすぐ消える.
waveplot.pltの中身は以下のようにしている.

plot "wave.dat" with lines


これで,バッチファイルを起動すると波形を作ってgnuplotで表示してくれる.この一連の動作を自動でやってくれる.
これを応用するともっと面白いことができそう.しかも,便利!!
コマンドプロンプトに与えるコマンドはファイルとして残せるため,数の多いライブラリをリンクするときとか,大量のファイルを操作するときなんかにも使える.
バッチファイルに書けるコマンドはpathが通っていればなんでも使える.例えば,今回使った ruby コマンドとか,インストールすればUNIXコマンドも扱える.
さらに,バッチファイルは単純な構造をしているため扱いは楽.

今回はこんなところで.Makefileも一緒に勉強するといいかもw

 
PR
お名前
タイトル
文字色
URL
コメント
パスワード
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback URL
Copyright c jonのブログ All Rights Reserved
Powered by ニンジャブログ  Designed by ピンキー・ローン・ピッグ
忍者ブログ / [PR]