はじめに
MATLABは現在のフォルダが基準であるため、現在のフォルダを無意識のうちに変えて、mファイルが本来とは異なる場所でmファイルを実行してしまうと、特にファイルの入出力関係で問題になることが(私だけかもしれないが)多々あります。
(読み込みデータがあればエラーがでるだけだが、出力する場合はフォルダがごちゃごちゃになり、後々の整理が大変なことになることも。。。)
対策
それを防ぐために、Windowsであればmファイルの先頭に以下のようなコード
if ispc % Windowsであれば実行
tmp= matlab.desktop.editor.getActive; % 現在表示しているファイルのパス
[filepath,~,~] = fileparts(tmp.Filename); % 現在表示しているファイルのフォルダ名の取得
cd(filepath); % 現在表示しているファイルのフォルダを現在のフォルダに設定
end
を追加すれば、エディタ上の実行の度に、実行したmファイルがあるフォルダを現在のフォルダに設定することができます。
なお、UNIX系ではエラーになるので if ispc
でwindowsかどうか判定しています。
UNIX系の対処法も(多分ですが)あるのではないかと思います。
ご意見等ありましたら、よろしくお願いします。