我尝试通过我编译的 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 文件的路径,但我不知道如何。
谢谢你的帮助。