SPM8とSPM12を同一のMatlabのライセンスで使用する方法

SPMのメーリングリストでSPMの中の人が明らかにしていますが、SPM12の正式版がそろそろ公開されるようです。SPM12が正式に公開されました。(2014年10月1日)

SPM12はいろいろよい点も加わっていますが、まだ、プラグインで対応していないものも多々あります。
このため、しばらくは、SPM8とSPM12が同時に動かせる環境にあった方がよいですよね。

いい方法がありますので、ご紹介します。

以下の2つのファイル(spm8.mとspm12.m)をMatlabのパスが通っているフォルダ(ディレクトリ)に保存します。
Windowsの場合、「ドキュメント」の下のMATLABフォルダがよいでしょう。
Macの場合、「書類」の下のMATLABフォルダがよいでしょう。
これらはパスが通っているフォルダです。

そして、最初の4行と最後の方のaddpathからはじまる行を自分の環境にあわせて調整します。

このスクリプトがしているのは3つです。

  1. SPMのパスとツールボックスのパスを変数として指定します。
  2. SPMのパスが既にある場合、spm_rmpathを用いてそのパスを取り除きます。
  3. 改めてSPM8もしくはSPM12のパスを設定します。

以下にspm8.mのスクリプトを例に説明していきます。

%%spm8.m
%%specify spm8 and other toolbox path
spm8_path = 'c:\spm\spm8';
pickatlas_path = 'c:\spm\spm8\toolbox\wfu_pickatlas';
%spm-related_path = 'path_to_the_application';

%からはじまる行はすべてコメントなので気にしなくていいです。
spm8_path = のところで、SPM8がインストールされているフォルダを設定します。
pickatlas_path = のところで、(例として)PickAtlasのフォルダを設定します。
同様に、他にも設定しなくてはいけないプラグインがあったら、ここに設定します。
(これまで、設定する必要があったのは、PickAtlasとAnatomyツールボックスぐらいです。
その他はあえて設定する必要はありません)
これを後に使います。

% remove spm path
while true
  try
    spm_rmpath;
  catch
    break
  end
end

ここはいじる必要がありません。
まず、spm_rmpathというコマンドをトライします。
もし、SPMにパスが通っていれば、このコマンドが実行され、SPMのパスが取り除かれます。
もし、パスが通っていなければ、実行されずにそのまま次に進みます。

% add spm8 and related path
addpath(spm8_path,pickatlas_path);

次に、addpathを使ってパスを設定します。
addpathの中に先程設定したパスを書きこんでいきます。順序が大事で、先にspm8_pathを書き、その次にツールボックスのパスを書きます。

% run spm8
spm;

最後にSPMを起動します。

関心のある方は、下記の2つをダウンロードして、ご自身の設定にあわせて修正してご利用ください。

spm8.mをダウンロード(右クリックで「名前をつけ保存」から保存してください)
spm12.mをダウンロード

SPM8とSPM12を同一のMatlabのライセンスで使用する方法” へのコメント

  1. ピングバック: SPM8とSPM12をよりスマートに同一のMatlabのライセンスで使用する方法

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください