Если Ctrl + c не отвечает сразу, потому что ваш скрипт слишком длинный/сложный, удерживайте его.
Команда break не запускается, когда Matlab выполняет некоторые из своих более глубоких скриптов, и либо он не будет регистрировать последовательность ctrl в буфере, либо очищает буфер непосредственно перед или сразу после того, как он завершит эти фрагменты код. В любом случае, когда matlab вернется, чтобы выполнить больше вашего скрипта, он распознает, что вы держите ctrl + c и завершаете.
Для более длительных программ я обычно стараюсь найти хорошее место, чтобы обеспечить обновление статуса, и я всегда сопровождаю это с некоторым промежутком времени, используя tic и toc. В зависимости от того, что я делаю, я мог бы использовать время работы, время сегмента, какой-то средний, и т.д. ...
Для очень длительных программ, я нашел, что это будет исключительно полезным http://www.mathworks.com/matlabcentral/fileexchange/16649-send-text-message-to-cell-phone/content/send_text_message.m
но похоже, что у них есть несколько новых функций для этого.
Кажется, что это то, что мне нужно. Однако эта функция называется mexCancel, как бы это выглядело? – patrik
@patrik Это полностью зависит от того, как выглядит ваш долгий процесс. По сути, отменить, isdone и longprocess все должны быть записаны в c для совместной работы, экспортированы в DLL, а затем mex-функции, написанные для вызова этих функций. Это непросто или чисто, и не будет общего кода. – KitsuneYMG
Спасибо за ответ. Это похоже на обескураживающее, но в любом случае, если это будет достигнуто, это, безусловно, красивое решение. – patrik