Haskell でサインカーブを作る。

Haskell でサインカーブのデータを作成した。まずは数値を打ち出してみる。

サインカーブ計算プログラム(その1)
main = putStr curvedata
  where curvedata = format $ sincurve [0..10]

format :: [Float] -> String
format xs = unlines $ map show xs

sincurve :: [Int] -> [Float]
sincurve xs = map (\x -> sin (pi * 0.05 * fromIntegral x)) xs

実行例
Main> main
0.0
0.1564345
0.309017
0.4539905
0.5877852
0.7071068
0.809017
0.8910065
0.9510565
0.9876884
1.0

数値だけでは面白くないので、データをCSVファイルにして Excel でグラフを書かせた。次のプログラムを動作させると、CSVをディスクに作ってくれる。WinHugs なら左肩のフォルダアイコンをクリックするとファイルが表示される。ファイルの種類をAll files にするとCSVファイルも表示されるので、右クリックしてファイルから実行を選び、Microsoft Office Excel を選ぶ。あとは Excel の操作でグラフを描くことができる。

サインカーブ計算プログラム(その2)
main = writeFile "data.csv" curvedata
  where curvedata = format $ sincurve [0..100]

format :: [Float] -> String
format xs = unlines $ map show xs

sincurve :: [Int] -> [Float]
sincurve xs = map (\x -> sin (pi * 0.05 * fromIntegral x)) xs

やっと、Haskell でプログラムを作ってデータを保存しExcel と連携してグラフを作成するところまで来た。御祝いにビールを飲んで寝ることにしよう。
[PR]
by tnomura9 | 2009-09-22 00:05 | Haskell | Comments(0)
<< 畳み込み(convolution) ファイルの読み書き >>