РЕДАКТИРОВАНИЕ:
После просмотра вашего редактирования простое решение, не включающее использование каких-либо наборов инструментов, выглядит следующим образом:
Поскольку MAT_2
намного медленнее, чем MAT_1
, начните MAT_2
с задержкой.то есть, запустите его, когда MAT_1
закончит обработку, скажем, 5 изображений или около того.Если вы сделаете это, MAT_2
никогда не догонит MAT_1
и, следовательно, никогда не будет в ситуации, когда ему придется «ждать» изображения из MAT_1
.
. Явсе еще неясно несколько вещей из вашего вопроса:
- Вы говорите, что
MAT_1
обрабатывает изображения последовательно, но это должно ?Другими словами, имеет значение порядок, в котором они обрабатываются? - Вы говорите,
MAT_2
читает вывод из MAT_1
... Должно ли это быть в том порядке, в котором MAT_1
заканчивается или можетэто какой-нибудь заказ? - Вы говорите,
MAT_2
читает изображение, используя imread
, и выводит его где-то еще.Есть ли причина, по которой задача не может быть объединена в MAT_1
?
В любом случае вы можете реализовать некоторую форму блокировки выполнения с помощью набора инструментов параллельных вычислений;но вместо использования parfor
циклов (это то, что используется большинством людей), вам придется создать распределенное задание ( пример ).
Важно отметить, что каждыйработник (лаборатория) имеет labindex
, и вы можете использовать labSend
для отправки данных от работника 1 (эквивалент MAT_1
) работнику 2 (эквивалент * 1046)*), который затем получает его, используя labReceive
.Из документации по labReceive
:
Эта функция блокирует выполнение в лаборатории до тех пор, пока в отправляющей лаборатории не произойдет соответствующий вызов labSend.
, что довольно многовы хотели сделать с MAT_1
и MAT_2
.
Еще один способ сделать это - создать еще одного рабочего в текущем сеансе, но назначить ему только задачи, выполняемые MAT_1
.Затем вы устанавливаете свойство FinishedFcn
для задач для выполнения набора функций, выполняемых MAT_2
, но я бы не рекомендовал его, так как не думаю, что это было намерением для FinishedFcn
и я не знаю, сломается ли он в некоторых случаях.