2017-06-21 8 views
1

SPM8ツールボックスを使用しているユーザーの1人が作成したMATLABプログラムがあります。直接実行すると正常に動作します。コンパイルしてから実行したときただし、次のエラーが発生します。コンパイル済みMATLABエラー:未定義関数 'ft_datatype_sens' 'struct'型の入力引数

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

この機能は、SPM8ツールボックスに同梱されているFieldtripツールボックス、から来ています。 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のユーザーされていない、私は暗闇の中で手探りしていますが、私の仮定はFieldtripツールボックスが発見されていないということです。

誰もがこれにどのような光を当てることができますか?

+0

コンパイルされたアプリケーションは、パスの変更をサポートしていません。プログラムをコンパイルする場合は、mccの "-C"フラグを使用して、生成されたパッケージファイルを調べて、存在するファイルに対してzipユーティリティを使用してみてください。 – Navan

+0

ヒントありがとう。パッケージには実際に 'ft_datatype_sens.m'しかし、私はあなたが "パスを変更する"ということを理解していません。コンパイルする前に設定したパスだけではなく、スタンドアロンバイナリにコンパイルされているのでしょうか? MATLABのインストールの 'toolbox'ディレクトリに移動しますか? – 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を使用して指定する必要があるディレクトリの数を減らすことはおそらく可能です、再帰的にディレクトリを追加できます。

関連する問題