поделиться глобальной переменной с пакетным процессом в Matlab

у меня есть переменная t=toc; в функции MATLAB. t изменяет значение в цикле. в настоящее время функция работает как пакетный процесс в Matlab. я хочу прочитать t из вызывающей функции. Я попытался объявить t глобальной переменной, к которой могут обращаться все функции. но это не работает в случае пакетного процесса. может кто подскажет что делать?


person sam ran    schedule 25.03.2015    source источник
comment
что вы подразумеваете под пакетным процессом?   -  person siliconwafer    schedule 25.03.2015
comment
Matlab предоставляет функцию в PCT batch('script'), которую я использовал для запуска функции в виде пакетного процесса. надеюсь, это прояснит любые сомнения.   -  person sam ran    schedule 25.03.2015


Ответы (1)


Когда пакетный процесс выполняется на работнике Matlab (отдельный процесс). Этот рабочий процесс не может выполнять какие-либо другие действия, так как m-код является однопоточным. Вы не можете читать переменные из пакетного процесса, который не завершен.

В качестве возможного обходного пути вы можете записать необходимую информацию в файл и прочитать ее в своем основном экземпляре Matlab.

person Daniel    schedule 26.03.2015
comment
На самом деле я использую imfreehand() для обозначения региона. Выполняется функция с именем timestamp() (это написано мной), которая выполняет операцию синхронизации. когда я использую imfreehand, во время маркировки timestamp() останавливается и начинается снова, когда маркировка завершена. но я хочу запустить операции маркировки и синхронизации для сбора. как это сделать? - person sam ran; 27.03.2015
comment
@samran: Из вашего комментария я не понимаю, что вы пытаетесь реализовать. Я рекомендую задать новый вопрос, где вы объясните, что вы пытаетесь реализовать. Если возможно, предоставьте краткий пример кода, объясняющий вашу проблему. - person Daniel; 27.03.2015