2017-06-21 100 views
1

我有一個MATLAB程序由我的用戶之一寫的使用SPM8工具箱。如果直接運行,它工作正常。然而,編譯並運行時,會出現以下錯誤:編譯MATLAB錯誤:未定義的函數'ft_datatype_sens'輸入參數的類型'結構'

Undefined function 'ft_datatype_sens' for input arguments of type 'struct' 

此功能來源於實地考察工具箱,這是捆綁在一起的SPM8工具箱。該startup.m包含以下內容:

if(isdeployed==false) 
    addpath(genpath('/cm/shared/apps/matlab/spm/08')) 
    spm('defaults', 'eeg') 
    spm_get_defaults('cmdline',true) 
    disp('SPM path is set') 
end 

並非是一個MATLAB用戶自己,我在黑暗中摸索,但我的假設是,實地考察工具箱沒有被發現。

任何人都可以對此有所瞭解嗎?

+0

編譯的應用程序不支持更改路徑。如果您正在編譯程序,請嘗試使用mcc的「-C」標誌來檢查生成的包文件,使用zip實用程序檢查存在的文件。 – Navan

+0

感謝您的提示。包確實包含文件'ft_datatype_sens.m' ,所以看起來沒問題,但是,我不明白「改變路徑」的含義,不是我編譯之前設置的路徑,而是編譯到獨立二進制文件中,或者我應該移動外部工具箱進入MATLAB安裝的'工具箱'目錄? – loris

+0

如果文件存在並且在編譯之前添加了路徑,它應該可以工作,不知道還有什麼會導致錯誤,我會先簡單地調用工具箱來檢查它是否正確是用於這個功能還是整個工具箱。 – Navan

回答

0

的解決方案是必要的目錄需要通過選項-I明確給出:

mcc -C -mv -R -singleCompThread -R -nodisplay -I /cm/shared/apps/matlab/spm/08/ -I /cm/shared/apps/matlab/spm/08/spm_orthviews -I /cm/shared/apps/matlab/spm/08/config -I /cm/shared/apps/matlab/spm/08/matlabbatch -I /cm/shared/apps/matlab/spm/08/matlabbatch/cfg_confgui -I /cm/shared/apps/matlab/spm/08/matlabbatch/cfg_basicio -I /cm/shared/apps/matlab/spm/08/matlabbatch/cfg_basicio/src -I /cm/shared/apps/matlab/spm/08/matlabbatch/examples -I /cm/shared/apps/matlab/spm/08/src -I /cm/shared/apps/matlab/spm/08/toolbox -I /cm/shared/apps/matlab/spm/08/toolbox/mixture -I /cm/shared/apps/matlab/spm/08/toolbox/spectral -I /cm/shared/apps/matlab/spm/08/toolbox/Seg -I /cm/shared/apps/matlab/spm/08/toolbox/Beamforming -I /cm/shared/apps/matlab/spm/08/toolbox/DEM -I /cm/shared/apps/matlab/spm/08/toolbox/DARTEL -I /cm/shared/apps/matlab/spm/08/toolbox/MEEGtools -I /cm/shared/apps/matlab/spm/08/toolbox/Neural_Models -I /cm/shared/apps/matlab/spm/08/toolbox/dcm_meeg -I /cm/shared/apps/matlab/spm/08/toolbox/SRender -I /cm/shared/apps/matlab/spm/08/toolbox/Shoot -I /cm/shared/apps/matlab/spm/08/toolbox/HDW -I /cm/shared/apps/matlab/spm/08/toolbox/FieldMap -I /cm/shared/apps/matlab/spm/08/EEGtemplates -I /cm/shared/apps/matlab/spm/08/canonical -I /cm/shared/apps/matlab/spm/08/rend -I /cm/shared/apps/matlab/spm/08/apriori -I /cm/shared/apps/matlab/spm/08/templates -I /cm/shared/apps/matlab/spm/08/external -I /cm/shared/apps/matlab/spm/08/external/fieldtrip -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/plotting -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/fileio -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/statfun -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/src -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/connectivity -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/inverse -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/specest -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/forward -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/utilities -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/preproc -I /cm/shared/apps/matlab/spm/08/external/fieldtrip/trialfun -I /cm/shared/apps/matlab/spm/08/external/yokogawa -I /cm/shared/apps/matlab/spm/08/external/eeprobe -I /cm/shared/apps/matlab/spm/08/external/mne -I /cm/shared/apps/matlab/spm/08/external/ctf -I /cm/shared/apps/matlab/spm/08/external/bemcp -I /cm/shared/apps/matlab/spm/08/tpm myprog.m 

這可能是能夠減少需要通過選項-a,指定目錄的數量,其可以遞歸地添加目錄。

相關問題