読者です 読者をやめる 読者になる 読者になる

Matlab/Octaveの判別

Matlab/Octave

Octaveだけに存在するOCTAVE_VERSIONというビルトイン関数があるかどうかを判定の材料に使用します。existは、引数に与えた名称がビルトイン関数であれば5を戻す関数です。(その他、変数なら1、ファイル名なら2、.mexや.octなら3、ディレクトリなら7など、様々なものの判定に使えます)

以下の例では、幾何平均を計算するために、Matlabではgeomeanを、Octaveではmean(..., "g")を用いる条件分岐に使用しています。

if exist('OCTAVE_VERSION') == 5
  g = mean([1 2 3 4 5], 'g');
else
  g = geomean([1 2 3 4 5]);
end