我正在开发一个 MATLAB 程序,该程序使用许多其他定制包,通常包含类似名称的文件。所以我决定使用自定义包方法(http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html)在引用各种特定函数时有效地获得点符号我正在使用的软件包。例如,我有一个名为的包pose
,它具有以下文件结构:
MATLAB % on the MATLAB path
--- +pose
--- detect.m
--- MORE STUFF
--- +tracker
--- MORE STUFF
--- main.m
在我的main.m
文件中,我有一个并行化的 for 循环:
parfor i=start:stop
... BLAH BLAH
boxes = pose.detect(stuff);
... BLAH BLAH
end
但我不断收到错误消息
MATLAB 无法确定“pose”是指函数还是变量。请参阅 MATLAB 中的并行 for 循环,“明确的变量名称”。
查看 MATLAB 并行编程文档(http://www.mathworks.com/help/distcomp/programming-considerations.html),您在并行 for 循环中使用的所有函数似乎在 for 循环中都必须是透明的。但这似乎直接违反了 MATLAB 中的另一个并行编程原则,即“所有执行 parfor-loop 的工作人员必须具有与客户端相同的 MATLAB 搜索路径”。
有谁知道如何调和这个?