« 初心者がpython、pygletで遊んでみる。 | トップページ | アバスト! 無料アンチウイルス Ver6でサンドバック機能を使う »

2011年1月29日 (土)

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でサンドバック機能を使う »

学問・資格」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: GNU Octave 3.2.3でginputをimagescに使う:

« 初心者がpython、pygletで遊んでみる。 | トップページ | アバスト! 無料アンチウイルス Ver6でサンドバック機能を使う »

広告欄


やっつけタイムライン

広告欄

オススメたち

  • Librem One

    LibremOneでプライバシーを取り戻せ!VPN、eメール、チャット、ソーシャルメディア詰め合わせサービス

    follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。RSSを表示

    超安定なLinux Mintを応援中



    超かっこいいジャズピアノ岩瀬章光

    Jenny Mayhem超おすすめ

    今読んでいる

2019年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

はてブ

無料ブログはココログ