споделяйте глобална променлива с партиден процес в 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 worker (отделен процес). Този работник не може да извърши друго действие, тъй като 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