しばらく前に、SPM8とSPM12を同一のMatlabのライセンスで使用する方法という記事を書きましたが、先日の包括脳チュートリアルのアンケートで、「SPM8とSPM12を併存する方法がわかりにくい」というご指摘をいただきました。
ということで、ひとつのスクリプトで全部解決できる方法を考えてみました。
奇しくも、SPM-MLで同じような話題があり、私もその話題に加わったもので、その結果を受けています。
使い方は簡単です。
まず、spms.mをMatlabのパスが通っているフォルダに置きます。
Windowsの方は、ユーザー名/Documents/MATLAB があると思いますので、そこがいいでしょう。
Macの方は、/Users/ユーザー名/Documents/MATLAB があると思いますので、そこに置きます。
Linuxの方は、/home/ユーザー名/Documents/MATLAB になります。
そして、Matlabのコマンドウィンドウから
>> edit spms.m
とタイプします。
そうすると、15行目に
spm_path='PATH-TO-PARENT-DIRECTORY-OF-SPM';
という記載がありますので、それをご自身の環境にあわせて変更します。
Windowsの方でSPMをC:\spmの下にspm8やspm12をいれている方は、
spm_path='c:\spm';
とします。
Macの方ならば、
spm_path='/Users/your_name/spm'
などになると思います。
それだけです。
使い方はいたって簡単で、Matlabから
>> spms
とタイプしていただくと、下図のようなダイアログがあらわれます。

これで、起動したい方を選べばおしまいです。
直接起動する方法もあります。
SPM8を起動したいならば、Matlabから
>> spms(8)
とタイプすれば直接SPM8が起動しますし、
>> spms(12)
でSPM12が起動します。
よろしければ試してもらって使い勝手をコメントしていただけたらと思います。
spms.mをダウンロード(右クリックして保存してください)
参考までに以下にspms.mのコードを記載します。
function spms(spmver)
%SPM switcher
%You can select to run eithr SPM8 or SPM12
%Usage; spms will bring up a dialogue to select which SPM you want to run
% spms(8) will run SPM8 and spms(12) will run SPM12 directory.
%%Specification of the parent directory of spm
%Please specify the location of your spm installation.
%This script assumes that your spm12 or spm8 is installed under this
%directory.
%For example
%Windows: c:\spm
%MacOSX: /Users/your_username/spm
%Linux: /home/your_username/spm
spm_path='PATH-TO-PARENT-DIRECTORY-OF-SPM';
if nargin == 0
SelectVer = questdlg('Which SPM do you want to run?',...
'Select SPM ver.','spm12','spm8','spm12');
else
SelectVer = ['spm' num2str(spmver)];
end
%remove spm paths
while true
try
evalc('spm_rmpath;');
catch break;
end
end
%add paths for your selected spm
addpath(fullfile(spm_path,SelectVer));
%clear
clear classes
%run spm
spm;
return;
お世話になってます。
今までWindowsの入ったPCにのみSPM12を導入し、Macの入ったPCはSPM8解析用にSPM12を導入せずに残しておいたのですが、今回、両方のPCにSPM12とSPM8を入れることに成功しました。先生に作っていただいたspms.mのおかげでスムーズに両方のソフトを使うことができます。
ありがとうございました。