2014-09-17 2 views
1

Я работаю над программой MATLAB, в которой есть много других пользовательских пакетов, часто содержащих файлы с одинаковым именем. Поэтому я решил использовать подход пользовательского пакета (http://www.mathworks.com/help/matlab/matlab_oop/scoping-classes-with-packages.html), чтобы эффективно получать точечную нотацию при обращении к конкретным функциям в различных пакетах, которые я использую. Например, у меня есть пакет под названием pose, который имеет эту файловую структуру:MATLAB с использованием parfor (параллельного вычислительного инструментария) и пользовательских пакетов с +

MATLAB % on the MATLAB path 
    --- +pose 
      --- detect.m 
      --- MORE STUFF 
    --- +tracker 
      --- MORE STUFF 
    --- main.m 

В моем main.m файле, у меня есть распараллеленный цикл:

parfor i=start:stop 
    ... BLAH BLAH 
    boxes = pose.detect(stuff); 
    ... BLAH BLAH 
end 

Но я получаю ошибку, что

MATLAB не может определить, относится ли «поза» к функции или переменной . См. Параллель для циклов в MATLAB, «Однозначные переменные имена».

Глядя на документацию по параллельному программированию MATLAB (http://www.mathworks.com/help/distcomp/programming-considerations.html), кажется, что все функции, которые вы используете внутри цикла parallel, должны быть прозрачными внутри цикла for. Но это кажется прямым нарушением другого принципа параллельного программирования в MATLAB, который заключается в том, что «все рабочие, выполняющие parfor-loop, должны иметь тот же путь поиска MATLAB, что и клиент».

Кто-нибудь знает, как смириться с этим?

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^