8

今日、私はこのスレッドに出くわしました:

http://www.mathworks.com/matlabcentral/newsreader/view_thread/112560

問題は、基本的に、matlabセッションを開始する場所に関係なく、Matlabにstartup.mファイルを読み取らせる方法です。

提供されたソリューションの1つは次のとおりです。

1つの解決策は、システム管理者に「matlabrc.m」に数行を追加するように依頼することです。これにより、ユーザーのホームディレクトリにある事前定義されたフォルダーがMATLABパス(たとえば、〜/ .matlabstart)に追加されます。次に、各ユーザーはこのフォルダー内に独自の「startup.m」ファイルを持つことができます。

私のシステム(OS X)でやったことは、startup.mファイルを次の場所に追加することでした。

/Applications/MATLAB_R2011a.app/toolbox/local/

このstartup.mファイルに次を追加しました。

if exist([getenv('HOME') '/.matlabrc/startup.m'])
    run([getenv('HOME') '/.matlabrc/startup.m']);
end

このようにして、ユーザーは隠しフォルダーを作成するオプションがあり、その~/.matlabrc中にファイルを置くことができますstartup.m。このスタートアップファイルでは、Matlabを起動したディレクトリに関係なく、Matlabを起動するたびに何を実行するかをmatlabに指示できます。startup.m私が自分の個人ファイルに追加したものの例は

addpath(genpath('/Users/jmlopez/matlabcode/'))

これで、そのディレクトリ内にできるだけ多くのフォルダーを追加でき、パスを変更せずにMatlabを自動的に起動するたびに、すべてのフォルダーがパスに追加されます。

問題は、Matlabが私が作成したような特別なファイルをすでに提供していたのか、それとも私が望んでいたことを達成するためにこのすべての問題を経験したのかということです。答えが私が与えた2番目のオプションである場合、Matlabがこれを提供しないのはなぜですか?startup.m管理者権限がなく、アクセスするすべてのディレクトリにファイルを移動したくない場合は、Matlabパスにディレクトリを追加するのは非常に苦痛です。誰かがこれに光を当てることができますか?

4

1 に答える 1

6

pathdefファイル(追加したすべてのパスを保存する)をカスタムディレクトリに保存できます。ただし、問題は、matlabの起動時に、前のセッションで使用したカスタムディレクトリが自動的に認識されないことです。

しかし、そこでMATLABPATH環境変数が登場します。これにより、matlabの開始パスを自分で設定できるためです。Linuxでは、これは、matlabを開始する前にこの環境変数MATLABPATHを設定することで簡単に実行できます(ターミナルから/ .bashrc / ...)

export MATLABPATH=$HOME/.matlab

このようにして、すべてのユーザーに独自のpathdefファイルを持たせることができます。これにより、起動時に手動で追加する必要があるという問題が解決されます。

編集

startup.mそのMATLABPATHディレクトリへの追加が機能するかどうかをテストしました。つまり、matlabはそのスタートアップファイルを実行しますか?...そしてそれはします。他の(優先度の高い)ディレクトリ(おそらく)に別のstartup.mファイルがあり、それが優先されるため、うまくいかないと思いますmatlabroot。私の唯一のスタートアップファイルはMATLABPATHにあるので、選択肢は1つだけです。

EDIT2

いいえ、matlabrootディレクトリにスタートアップを追加しましたが、それでも.matlab内の自分のスタートアップファイルが実行されます。matlabを開始する前に、MATLABPATHを正しく設定しましたか?

于 2012-06-16T17:37:35.097 に答える