Haskell で正弦波のデータを作成して CSV ファイルにする方法をやってみた。
まず正弦波の1周期を100等分したデータを作成する。 Prelude> take 3 $ iterate (+(2*pi/100)) 0 [0.0,6.283185307179587e-2,0.12566370614359174] 次にそのデータの sin 値を計算する。 Prelude> map sin $ take 3 $ iterate (+(2*pi/100)) 0 [0.0,6.279051952931337e-2,0.12533323356430426] それらの数値を文字列にする。 Prelude> map show $ map sin $ take 3 $ iterate (+(2*pi/100)) 0 ["0.0","6.279051952931337e-2","0.12533323356430426"] それを改行区切りの文字列にする。 Prelude> unlines $ map show $ map sin $ take 3 $ iterate (+(2*pi/100)) 0 "0.0\n6.279051952931337e-2\n0.12533323356430426\n" それを "sin.cvs" というファイルにする。データ数は100にする。 Prelude> writeFile "sin.csv" $ unlines $ map show $ map sin $ take 100 $ iterate (+(2*pi/100)) 0 ファイルのデータを確認する。 Prelude> readFile "sin.csv" >>= putStr 0.0 6.279051952931337e-2 0.12533323356430426 (以下省略) こうしてできた sin.csv を LibreOffice Calc で開いてグラフを表示させると正弦波ができているのが確認できる。 追記 正弦波の作り方は次の書き方のほうがもう少しコンパクトに書ける。 Prelude> Prelude> writeFile "sin2.csv" $ unlines $ map (show . sin) $ map (*(2*pi/100)) [0..99]
by tnomura9
| 2012-11-23 14:34
| Haskell
|
Comments(0)
|
カテゴリ
新型コロナウイルス 主インデックス Haskell 記事リスト 圏論記事リスト 考えるということのリスト 考えるということ ラッセルのパラドックス Haskell Prelude Ocaml ボーカロイド 圏論 jQuery デモ HTML Python ツールボックス XAMPP Ruby ubuntu WordPress 脳の話 話のネタ リンク 幸福論 キリスト教 心の話 メモ 電子カルテ Dojo JavaScript C# NetWalker ed と sed HTML Raspberry Pi C 言語 命題論理 以前の記事
最新のトラックバック
最新のコメント
ファン
記事ランキング
ブログジャンル
画像一覧
|
ファン申請 |
||