[matlab] スクリプト実行ディレクトリを絶対パスで取得する


pythonでの方法は知っていましたが,それのMatlab版をようやく見つけたので残しておきます。

fileparts(mfilename('fullpath'))

以下はテストコード。

test.m
fprintf("mfilename('fullpath')            : %s \n", mfilename('fullpath'));
fprintf("fileparts(mfilename('fullpath')) : %s \n", fileparts(mfilename('fullpath')));
実行結果
mfilename('fullpath')            : C:\Users\Ken\Documents\MATLAB\test 
fileparts(mfilename('fullpath')) : C:\Users\Ken\Documents\MATLAB 

なぜかファイルの拡張子が省略されます。詳細はmfilename関数のドキュメントを参照。昔調べたときはこの関数を見つけられなくて,Matlabではできないと思ってました。