Обработчик событий MATLAB, не вызванный во время цикла while

#matlab

#matlab

Вопрос:

У меня есть дескриптор ActiveX для motorcontroller (h_TDC), который позволяет мне регистрировать несколько событий. Я хочу использовать ‘MoveComplete’-Событие. В моей основной функции я выполняю цикл до тех пор, пока не будет переключен флаг. Я хочу установить флаг в моем eventhandler, который я зарегистрировал ранее. Это вложенная функция, поэтому она совместно использует ту же рабочую область, где находится флаг.

Кажется, что события запускаются правильно, но обрабатываются только после цикла while, ЕСЛИ только я не создаю что-то, например, с помощью imshow. Для меня это не имеет смысла. Как я могу сделать обработку «прерывистой» без построения графика во время цикла?

Если я не использую imshow, скрипт завершается после MAX_ITER. Если я использую imshow, обработчик завершает его раньше (по желанию)

 function Blubb
    MAX_ITER = 100;
    move_completed = false;
    ....
    h_moveComplete = @MyMoveCompleteHandler;
    h_TDC.registerevent({'MoveComplete' h_moveComplete});  % h_TDC is our activeX handle
    figure;
    while ~move_completed amp;amp; i < MAX_ITER
        .....
        imshow(blubb)  %<-- without this the handler is executed only after while-loop
    end

        function MyMoveCompleteHandler(varargin)
            move_completed = true;
        end
end
  

Комментарии:

1. Попробуйте drawnow

2. drawnow помог. Большое спасибо, excaza!