はじめに
以前、resturedefaultpath
を使ったパス設定の初期化について紹介しました。
今回はパス設定にもう少しだけ踏み込んで、MATLAB を起動するたびに裏で必ず動いている、
pathdef.m
userpath
について紹介します。パス設定のベース(基礎)ですね。
自分だけのパス設定で作業したいがチームでPCを共有している・・そんな時に役立つかもしれません。
関連 Q&A
そもそもパス(PATH)とは
(自分がそうだったんですが・・)MATLAB のパス設定を触っている方はどれくらいいらっしゃるのでしょう?
パスってなんだっけ?という方は、MATLABに限らずパス設定そのものについては良記事がありましたので、こちらも参照ください。
-
Pathを通すとは、環境変数とは by
@fuwamaki さん - 「PATH を通す」の意味をできるだけわかりやすく説明する試み by @sta さん
まずは pathdef.m
MATLAB ではパス設定は pathdef.m
というファイルに保存されていて、MATLAB 起動時に読み込まれます。
ファイルのありかはおなじみ which
コマンドで見つかります。
>> which -all pathdef
C:\Program Files\MATLAB\R2019a\toolbox\local\pathdef.m
例えば addpath
関数でフォルダをパスに追加するなどした後、savepath
関数を実行するとこの pathdef.m
が更新されるわけです。何かパス設定をいじるときには、このファイルさえバックアップ取っておけば安心です。
内容を確認するなら >> edit pathdef
で。大事なパス設定が直書きされています(笑)自信のある方は手で書き換えてもいいですが(あまりよくない)気をつけてください。
もし、うっかり意図しない編集をしてしまったら、
savepath
で元にもどる可能性はあります。やっぱりダメだったら
restoredefaultpath
savepath
で初期設定に・・。
注:環境変数 MATLABPATH
で起動時にパスを追加する方法もあります。(参照: 環境変数 MATLABPATH の設定)
2つ目の pathdef.m
?
さて、特に何もしなければ pathdef.m
は1つだけで十分なんですが、冒頭で触れたように2つ以上用意できると便利な場面もあります。例えば、
- 複数人で共有しているPCなので、勝手にパスをいじると他の人に迷惑がかかる。
-
C:\Program Files\MATLAB\R2019a\toolbox\local
の編集権限が無く、パス設定を変更できない!
こんな時は userpath
に pathdef.m
を保存すればOKです。
userpath
とは?
userpath
とはユーザー固有の作業フォルダのようなもの。特に設定した覚えが無くても、何らかのフォルダが userpath
として指定されていると思いますので、興味がわいた方は確認してみてください。
>> userpath
ans =
'C:\Users\eigs\Documents'
このフォルダに pathdef.m があれば、C:\Program Files\MATLAB\R2019a\toolbox\local
より優先されて読み込まれることになります。
userpath
に pathdef.m
をコピーしてから which
コマンドで見てみると
>> which -all pathdef
C:\Users\minoue\Documents\pathdef.m
C:\Program Files\MATLAB\R2019a\toolbox\local\pathdef.m % Shadowed
の通り、もともとの pathdef.m
より優先されています。この状態でパスをいじって savepath
すると userpath
にある pathdef.m
が編集されます。
>> userpath(絶対パス名)
で任意のフォルダを設定できますので、ユーザー固有のパス設定を持つことができるわけです。
userpath
設定情報はどこに保存されている?
既におなじみ prefdir
フォルダに保存されています。
>> prefdir
ans =
'C:\Users\eigs\AppData\Roaming\MathWorks\MATLAB\R2019a'
これもユーザー固有のものが持てますね。
複数の MATLAB バージョンを入れている場合は要注意
複数のMATLABバージョンで同じ userpath
設定だと、同じ pathdef.m
を共有してしまうことになります。フォルダ構成は各バージョン同じではないので、大問題。userpath
もバージョンごとに変える必要がありますね。
まとめ
パス設定の"基礎"を紹介しました。これでもう MATLAB のパス設定で迷うことはないですね。
ちなみに userpath
フォルダは検索パスの一番上に追加されます。
>> path
MATLABPATH
C:\Users\eigs\Documents
C:\Program Files\MATLAB\R2019a\toolbox\matlab\capabilities
C:\Program Files\MATLAB\R2019a\toolbox\matlab\datafun
(中略)
公式ページ:MATLAB 検索パスの表示と変更