GNU Octave 3.2.3でginputをimagescに使う
家のパソコンには現在MATLABが入っていないのでOctaveで切り抜けようと格闘中。Octaveは結構すごい。Octave-Forgeを使うとToolboxてんこ盛り状態なので素のMATLABよりも使えるのは確かだし、職場の5年ものの古いライセンスのMATLABよりもいいかもしれない。あとは互換性とMATLABみたいな開発環境がよくなれば全然乗り換えれそう。コードを選択してF9押して部分的に実行する便利さに適う環境はOctaveでもPythonでもいまだに見たことがない。
というわけでエディターやフロントエンドを物色する。QtOctaveか、Pythonでお気に入りのGeany Portableを使うか、それともコンソールから素直にoctaveにmファイルを渡して起動するかそれぞれに得手不手があり、悩ましい。Octave-Forgeで配布されているWindowsのバイナリー版にするかUbuntuで使うかもなやましい。
GeanyはデフォルトでMATLABのmファイルのハイライトに対応しているように見えるが、実際にコードを実行するときにはoctaveを呼ぶデフォルト設定になっているので、実はそのままoctave用に使えてしまう。(octaveにパスを通す必要あり、もしくはGeanyのBuildのアイコンから起動のパラメータをいじって実行ファイルを絶対パスで指定する。)Geanyはコンソール上の実行結果が見えるようにコードの実行後に勝手にポーズしてくれるんだけど、なんとfigureに関してはプロットしてからコードの最後にpauseをいれておかないと、figureがまったく表示されなかったり内容が見えなかったりする。これは気づくのにしばらくかかった。
実はUbuntuでコンソールから普通にOctaveを起動して、Geany等のエディターからコードを数行コピーしてCntl+Shift+Vで貼りつけていっても割と快適にできるのでデバックのしやすさからすると「UbuntuでGeanyでコードかいて順次貼りつけていく」、これが一番かもしれない。なんちゃってLinuxユーザーなのでEmacsとかそういうのに抵抗まだあるし。
QtOctaveは見た目よいし便利そうだったけどコンソールとエディターのあいだのコピペがWindowsでもUbuntuでもうまくいかなくてやめた。
Octave自体のバグも悩ましい。ginputでユーザーインプットを得ようとするとエラー。plotだったらうまくいくのにimshowとかimagescだとだめ。3.2.4にあげたら直るかもだが試していない。
どうやら既存のバグだったらしいが、はじめGeanyのせいなのかなんなのかわからなくてしばらく途方に暮れた。Petr Mikulikさんのパッチを__go_draw_figure__.mに当てたらあっさり解決したのでよかったけども、datevecの基準になる年が違ったりで、MATLABで動いている小さなコードを動かすまでに延々と作業していてはかどらない。でもまあもう少しでなれるかなぁ。ずっと昔に使ったときに比べるとかなりまともになった気がする。
どうせなら全部Python+Numpy+Matplotlibあたりでやりたいところだけど、PythonだいぶわかってきたとはいえまだまだMATLABのほうが早くやりたいことができるし、Image Processing Toolboxあたりの代わりになるPythonモジュールが見つからなかった。PILでは基本的なことしかできないので、Python(x,y)にOpenCVが入っているみたいだから時間があるときに試そう。OpenCVのインストールはCmake必要とか敷居が高く困っていたけどPython(x,y)はほんとに素晴らしい。
OMPCというのもあることだし、長い目でみればwxPythonでまともなGUIをつくったり、OpenGLつかったりと、自由度の高いPythonへと移行していきたいんだけども。Numpy+Scipyだけでもかなりのことはできるし、wxはMATLABのあのわかりにくいGUI覚えるよりも全然簡単だった。
« 初心者がpython、pygletで遊んでみる。 | トップページ | アバスト! 無料アンチウイルス Ver6でサンドバック機能を使う »
「学問・資格」カテゴリの記事
- ウイルスを殺すのは簡単。人に無害でやるのが難しいの!! 二酸化塩素「こう?えい!」(2020.03.11)
- 老化はエピジェネティクスな影響が積り、スプライシングに影響を与えるのかも(2017.11.20)
- シネッセンス細胞がアツい。不老不死とハゲの治療が同時に可能か?(2017.11.18)
- 古めの論文でテキスト選択がおかしい時の対処法(2017.09.08)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
« 初心者がpython、pygletで遊んでみる。 | トップページ | アバスト! 無料アンチウイルス Ver6でサンドバック機能を使う »
コメント