2014-12-23 35 views
3

我們試圖用SPM分割腦組織類型,並且幾乎不可能在網上找到如何在不使用GUI的情況下調用其基礎matlab函數。如何在沒有GUI的情況下用SPM分割腦組織?

一些資源,我發現這並沒有幫助:

+0

您正在使用哪個版本的SPM? – Dan

+0

@Dan我正在運行spm 12 – Leo

+1

有關批處理在SPM中的文檔不夠完整;然而,一個好的方法是使用GUI來設置示例分析,然後獲取生成的m代碼的視圖(在GUI菜單中有一個選項)。 –

回答

2

我的同事向我展示瞭如何調用SPM功能,如果你知道如何做他們的圖形用戶界面。轉到GUI並從菜單中選擇保存腳本。這導致了下面的代碼在兩個不同的文件進行分割:

job.m

matlabbatch{1}.spm.spatial.preproc.channel.vols = {'c:\test.nii,1'}; 
matlabbatch{1}.spm.spatial.preproc.channel.biasreg = 0.001; 
matlabbatch{1}.spm.spatial.preproc.channel.biasfwhm = 60; 
matlabbatch{1}.spm.spatial.preproc.channel.write = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(1).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,1'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(1).ngaus = 1; 
matlabbatch{1}.spm.spatial.preproc.tissue(1).native = [1 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(1).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(2).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,2'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(2).ngaus = 1; 
matlabbatch{1}.spm.spatial.preproc.tissue(2).native = [1 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(2).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(3).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,3'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(3).ngaus = 2; 
matlabbatch{1}.spm.spatial.preproc.tissue(3).native = [1 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(3).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(4).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,4'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(4).ngaus = 3; 
matlabbatch{1}.spm.spatial.preproc.tissue(4).native = [1 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(4).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(5).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,5'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(5).ngaus = 4; 
matlabbatch{1}.spm.spatial.preproc.tissue(5).native = [1 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(5).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(6).tpm = {'C:\Program Files\spm12\tpm\TPM.nii,6'}; 
matlabbatch{1}.spm.spatial.preproc.tissue(6).ngaus = 2; 
matlabbatch{1}.spm.spatial.preproc.tissue(6).native = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.tissue(6).warped = [0 0]; 
matlabbatch{1}.spm.spatial.preproc.warp.mrf = 1; 
matlabbatch{1}.spm.spatial.preproc.warp.cleanup = 1; 
matlabbatch{1}.spm.spatial.preproc.warp.reg = [0 0.001 0.5 0.05 0.2]; 
matlabbatch{1}.spm.spatial.preproc.warp.affreg = 'mni'; 
matlabbatch{1}.spm.spatial.preproc.warp.fwhm = 0; 
matlabbatch{1}.spm.spatial.preproc.warp.samp = 3; 
matlabbatch{1}.spm.spatial.preproc.warp.write = [0 0]; 

runjob.m

nrun = 1; 
jobfile = {'c:\job.m'}; 
jobs = repmat(jobfile, 1, nrun); 
inputs = cell(0, nrun); 
for crun = 1:nrun 
end 
spm('defaults', 'FMRI'); 
spm_jobman('run', jobs, inputs{:}); 

你可以有一個腳本編輯job.m文件,然後運行job.m文件。

相關問題