Matlab: возможно ли создавать обработчики сигналов (скрипты .m) - PullRequest
2 голосов
/ 06 мая 2011

Я просмотрел документацию и т. Д., Но не вижу ничего очевидного. Я хотел бы иметь обработчик сигнала, который может перехватывать ^C, ^\ или какое-либо другое нажатие клавиши, которое можно использовать для прерывания долгосрочного сценария (каждое дискретное вычисление обычно составляет <1 с) и позволяет ему корректно завершить и сохранить текущее состояние. </p>

В Matlab есть обработчики событий для COM, но он работает только в Windows, и я нахожусь в среде * nix.

Если ответ «неудача», я в этом не сомневаюсь ... Я просто пока не вижу ничего, что говорит, что я SOL.

1 Ответ

6 голосов
/ 06 мая 2011

MATLAB уже интерпретирует ^C как прерывание.Вы можете использовать onCleanup объекты, чтобы гарантировать правильное сохранение состояния вашей программы.То есть что-то вроде:

function testFcn
x = onCleanup( @() disp('perform cleanup here...') );
for ii=1:1000, disp(ii), pause(1), end

Запустите выше и нажмите ^C, когда вам надоестОчевидно, вы можете подключить любой дескриптор функции к вашему onCleanup объекту.См. Также справочную страницу для onCleanup .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...