I used to write an article, “Run SPM2, SPM5, and SPM8 concurrently.” Though this is a smart way to run different version of SPM, we need to prepare scripts separately. So I came up with another script, called “SPM switcher”. This script brings up a dialog and you can select the version of SPM you want to run.
- Make a directory where you want to save scripts. (e.g. C:\Users\foo\Documents\MATLAB\)
- Add the directory to the path in Matlab. (File -> Set Path -> Add path)
- put spm_rmpath.m in SPM2 and SPM99 directory.
- save switchspm.m in the directory you prepared.
- edit switchspm.m and change “spm_path=’C:\spm\'” according to your circumstance.
You find this file in SPM5 or SPM8 directory. You can just copy it from SPM5/8 to SPM2/99 directory.
Typing switchspm in Matlab command window will bring up a dialog below and you can run different version of SPM easily.
Download switchspm.m (Right click –> Save as)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | %switchspm: Run different version of SPM %This tiny script prompts the dialog which SPM version you want to run. %Prerequisites %1. Each version of SPM is supporsed to be located under spm_path. %2. Please copy spm_rmpath.m from SPM5 or later and put it into SPM99 and % SPM2 direcotry. Otherwise, Path removal won't work correctly. %3. Please change the SPM path according to your environment %%%Please change the path below according to your environment%%% spm_path='C:\spm\'; %%% %The path for each version of SPM spm99_path=fullfile(spm_path, 'spm99' ); spm2_path=fullfile(spm_path, 'spm2' ); spm5_path=fullfile(spm_path, 'spm5' ); spm8_path=fullfile(spm_path, 'spm8' ); spm12_path=fullfile(spm_path, 'spm12' ); str = [ 'spm99 ' ; 'spm2 ' ; 'spm5 ' ; 'spm8 ' ; 'spm12' ]; spmver = listdlg( 'PromptString' , 'SPM ver you want to run...' ,... 'SelectionMode' , 'single' ,... 'ListString' ,str); switch spmver case 1, %spm99 % remove spm path while true try spm_rmpath catch break ; end ; end ; % add spm99 path addpath(spm99_path); % run spm99 spm; case 2, %spm2 % remove spm path while true try spm_rmpath catch break ; end ; end ; % add spm2 path addpath(spm2_path); % run spm2 spm; case 3, %spm5 % remove spm path while true try spm_rmpath catch break ; end ; end ; % add spm5 path addpath(spm5_path); % run spm5 spm; case 4 %spm8 % remove spm path while true try spm_rmpath; catch break ; end ; end ; % add spm8 path addpath(spm8_path); % run spm8 spm; case 5 %spm12 % remove spm path while true try spm_rmpath; catch break ; end ; end ; % add spm12 path addpath(spm12_path); % run spm12 spm; end |