1

我尝试通过我编译的 SPM12 中的 matlabbatch 对象使用私有 MATLAB 函数(私有意味着我自己编写):

run_spm12.sh $MCR_ENV run batch.m

使用包含以下行的 batch.m 文件:

matlabbatch{1}.cfg_basicio.run_ops.call_matlab.inputs{1}.string = 'Hello world';
matlabbatch{1}.cfg_basicio.run_ops.call_matlab.outputs = {};
matlabbatch{1}.cfg_basicio.run_ops.call_matlab.fun = 'myfunction';

在文件 myfunction.m 中定义的函数“myfunction”为:

function myfunction(n)
disp(n);
end

SPM 返回的错误信息如下:

项目“要调用的函数”,字段“val”:项目必须是函数句柄或函数名称。

但是,如果我将函数“myfunction”替换为标准 MATLAB 函数,例如“disp”,它就可以工作。它表明,不知何故,我需要指定 myfunction.m 文件的路径,但我不知道如何。

谢谢你的帮助。

4

0 回答 0