Octave Downloadペー ジによると、安定バージョンである、2.0.x系は既にメンテナンスされておら ず、実際 2002年4月の 2.0.17 から新たなリリースもない。一方、試用バージョ ンである、2.1.x系は、次々と新しいバージョンがリリースされている。試用 バージョンは、安定バージョンに比べて、セル配列、多次元配列のサポートな ど、新機能が豊富である。また、Matlab互換を標榜する Octave-forge パッケー ジも、試用バージョンを対象に開発されており、安定バージョンでは動かない ものもある。
では、2.0.x系を使っていたユーザが、そのまんま 2.1.x系に移れるかとい うと、文法や関数の使用が変わっている部分もあり、そうはいかない。
ここでは、octave-2.0.17 を使用している環境から、最新試用バージョン (2005年11月で2.1.71)に移行する際に重要な点をまとめていく。
更新中!!
2.0.x | 2.1.x | 備考 | global変数 |
> global b; > exist('b') ans = 0 |
> global b; > exist('b') ans = 1 |
2.1.xでは、宣言した時点で global変数は存在するので、 global変数に値が代入済みかどうかは、isempty を使って調べる必要がる。 |
---|---|---|---|
セル配列 | サポートしない | OK | セル配列はMATLAB互換? |
conv | 一方のデータが充分長いときには fftconv より数倍高速 | 2.0.17 の convに比べて9倍以上遅い | 2.1.64以降は filter.cc が改善されて差は約2倍に縮まった |
可変引数 | ... | varargin | varargin{idx} idx は可変引数の何番目であるかを示すインデックス |
可変引数参照開始 | va_start() | 廃止 | va_start() 無しで可変引数の参照が可能になった |
可変引数参照 | va_arg() | varargin{idx} | idx は何番目の可変引数であるかを示すインデックス |
コマンドライン引数 | argv(idx,:) | argv{idx} | idx は何番目のコマンドライン引数であるかを示すインデックス |
str2num | 文字列を数値に変換 | 文字列(配列)を数値(配列)に変換 | 2.1.x の str2num は、そのまま 2.0.x でも使用でき、文字列配列の 数値配列への変換も可能 |
num2str | スカラ数値を文字列に変換 | 数値(配列)を文字列(配列)に変換 | |
gnuplot(グラフ)の設定 | gset | __gnuplot_set__ | とりあえず gset を使うこともできるが、将来的に gset は廃止される 見込み |
gset の設定項目 | gset autoscale | axis('auto') | プロット範囲の設定には axis を使う |
更新中!! ここで比較対象のMATLABは ver.6.0 (R12) とした。
MATLAB | Octave-forge | 備考 | fir1, fir2 | cols行列 | rows行列 |
---|---|---|---|
conv, fftconv | conv : cols行列 | fftconv : rows行列 | 2.1.x系では、fftconvの方が、双方のデータ長が長いとき、convより格 段に速い。MATLABの conv の場合、片方のデータが短い時高速だが、両方と も長いとかなり遅い。 |
wavread | x = wavread('hoge.wav', 'size'); にて、WAVファイルのサイズを返す |
左記をサポートしない | 自作 wavread.m を利用 |