2016-01-01から1年間の記事一覧
最近理論の話が続いたのでプログラムの話に戻ろう。先日matplotlibを使ったpythonコードを移植しようとしたところ、以下のようなエラーを吐いて動かない、ということがあった。Could not obtain dvipng version直訳すると「dvipngのバージョンを特定できない…
統計物理の重要な概念のひとつに「熱速度」という概念がある。熱速度とは、気体やプラズマのように多くの粒子からなる系で、さまざまな速度で運動する粒子集団の代表的な速度として定義される。しかし定義がいくつかあるうえ、あまりテキストに載っていない…
理系学生としてあってはならないことだが、僕は頻繁にガウス積分を忘れる。導出の方法は覚えているのだが、毎回導出するのはかなりあほらしいしまちがいのもとにもなりかねないので、ここにまとめておこうと思う。 1.一番基本的なケース(e^{-x^2}) 2.指数の…
以前fortranのnamelistという機能を紹介した。 数字を羅列しただけの平文ファイルとちがってnamelistはfortran独自のものなので、ほかの言語で読み込む場合は何らかの工夫が必要になる。 「fortranで計算した結果をpythonのmatplotlibでグラフ化したい」とい…
大規模計算プログラムには大量の設定すべきパラメータがある。物理定数のように内部で与えておけばよいものもあるが、頻繁に変えて実行するものもあり、内部で与えるとその都度コンパイルしなければならず効率が悪い。 簡単に思いつくのは、「平文のまま設定…
ワイルドカードとは、複数のファイルを一気に指定するのに使う記号で、たとえば任意の文字列を表す「*」や任意の1文字を表す「?」が代表的だ。たとえばカレントディレクトリのjpgファイルをpictureというディレクトリへ移動するときは、次のようにする。 mv …
lameをインストールした前回に引き続き、ffmpegをインストールしてみよう。 ffmpegもソースからビルドしなければならず、依存するパッケージもたくさんあるが、よくまとまったサイトがたくさんあるのでそちらを参照していただきたい。 僕がインストールした…
動画や音声ファイルはそのままではとても容量が大きいので、通常は圧縮処理されて容量が抑えられており、その圧縮処理をエンコードという。 有名なエンコーダにはmp3のlame、mp4などのffmpegがある。これらはwindowsのCUIやさまざまな動画編集ソフトにも含ま…
cygwinはwindowsでプログラム環境を作るのには強いツールと言える。apt-cyg install gccとかでコンパイラが入るので、windowネイティブのバイナリをいちいちダウンロードして実行するより楽だ。 しかし、pythonとは非常に相性が悪いらしい。pythonを入れるだ…
タイトルに入ったスペースは、バグの原因のひとつになる。たとえば「I love you.txt」というファイルを「love letter.txt」という名前にリネームするとき、次のようにするとエラーが出る。 mv I love you.txt love letter.txt なぜならば、単語がスペースで…
「アイドルマスターシンデレラガールズ スターライトステージ」はシンデレラガールズの世界をモチーフにした音楽ゲームで、最近SMAPの中居君がCMをしたり、基本無料とは到底思えないクオリティのMVなどで大人気のアプリである。 しかし、このデレステという…
forループはプログラムでは重要な機能だ。「カレントディレクトリ以下のファイル全部に何かする」とか、「findで拡張子が*.pngのファイルを拾ってきてリネームする」とか、そういう「リストに含まれるものに何かする」という局面はよくある。 bashスクリプト…
シェルスクリプトは十分有用な言語といえるが、ただ一つ重大な欠点がある。実は四則演算が単純な式でできないのだ。 たとえば、pythonで1/3を計算して表示するには、たった1文次のようにすればよい。 print 1.0/3.0 ただし1/3としてはならない。なぜならば1/…
findという非常に便利なコマンドがある。これはファイルを検索するコマンドなので、よくパイプと一緒に使う。 たとえば、カレントディレクトリ以下のemacsで生成される「*.txt~」というような一時ファイルを一挙に削除するときは次のようにすればよい。 find…
このブログはプログラム関係のことも書くのでソースコードを書くことが多いのだが、ソースコードやターミナル上に出るメッセージは囲んでわかるようにしている。 このように囲むには、はてなブログではhtml編集モードに移り、次のように記述する。 <p style="border: dashed 1px; background-color: #e6e6e6;">hoge<br />foo <br></p> …
シェルスクリプトのfor文の基本的な文法は次のようなものになる。 for i in 1 2 3 5 7 11 13{ command } 書ききれるならこのようにすればいいし、この並びでは1,2,3が連番になっているので、次のように指定することもできる。 for i in {1..3} 5 7 11 13 範…
cygwinを入れて一通りのソフトは導入した。そこで、すでにTeXWorksは動く環境でcygwinでもLaTeXも入れようとしたのだがどういうわけかうまくいかなかった。 TeXLive(w32TeX)はもとから入っている環境にcygwinを入れるときのトラブルじゃないかと思っている…
個人的なメモ。でも一般的にはこれだけやっておけば十分だと思う。 1.apt-cygを入れる wgetが入ってなかったら、インストーラで一緒にwgetを入れておく。 wget https://raw.githubusercontent.com/transcode-open/apt-cyg/master/apt-cygchmod 755 apt-cygmv…