LoginSignup
12

More than 1 year has passed since last update.

【MATLAB】パス設定に関する"基礎"知識

Last updated at Posted at 2019-09-22

はじめに

以前、resturedefaultpath を使ったパス設定の初期化について紹介しました。

参照:【MATLAB】何が起こっているか分からないが致命的っぽいエラーの処置方法

今回はパス設定にもう少しだけ踏み込んで、MATLAB を起動するたびに裏で必ず動いている、

  • pathdef.m
  • userpath

について紹介します。パス設定のベース(基礎)ですね。

自分だけのパス設定で作業したいがチームでPCを共有している・・そんな時に役立つかもしれません。

関連 Q&A

そもそもパス(PATH)とは

(自分がそうだったんですが・・)MATLAB のパス設定を触っている方はどれくらいいらっしゃるのでしょう?

パスってなんだっけ?という方は、MATLABに限らずパス設定そのものについては良記事がありましたので、こちらも参照ください。

まずは 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 の編集権限が無く、パス設定を変更できない!

こんな時は userpathpathdef.m を保存すればOKです。

userpath とは?

userpath とはユーザー固有の作業フォルダのようなもの。特に設定した覚えが無くても、何らかのフォルダが userpath として指定されていると思いますので、興味がわいた方は確認してみてください。

>> userpath
ans =
    'C:\Users\eigs\Documents'

このフォルダに pathdef.m があれば、C:\Program Files\MATLAB\R2019a\toolbox\local より優先されて読み込まれることになります。

userpathpathdef.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 Answers: MATLABを起動すると、「関数または変数 'matlab.in​ternal.edi​tor.Evalua​tionOutput​sService.p​rewarmExec​ution' が認識されません。」​のエラーが発生するの​はなぜですか?

まとめ

パス設定の"基礎"を紹介しました。これでもう 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 検索パスの表示と変更

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12