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



MARUI Atsushi
2023-12-05