Как остановить программу в матлаб
Перейти к содержимому

Как остановить программу в матлаб

  • автор:

Как остановить программу в матлаб

Halt execution temporarily

Description

pause , by itself, causes M-files to stop and wait for you to press any key before continuing.

pause(n) pauses execution fo r n seconds before continuing, where n can be any real number. The resolution of the clock is platform specific. A fractional pause of 0.01 seconds should be supported on most platforms.

pause on allows subsequent pause commands to pause execution.

pause off ensures that any subsequent pause or pause(n) statements do not pause execution. This allows normally interactive scripts to run unattended.

How to abort a running program in MATLAB?

Sometimes after calling a function (which takes some 30 odd minutes to finish), you realize that you did something wrong and want to stop the program.

How do you do that in MATLAB?

What I do is shutdown MATLAB completely and restart. I think there would be a way to abort the execution of the function instead.

Anybody know what that is?

1 Answer 1

Hitting Ctrl + C usually does the trick, although sometimes it has been known to run into snags.

    The Overflow Blog
Linked
Related
Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.3.11.43304

By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.

Как прервать запущенную программу в MATLAB?

Иногда после вызова функции (для завершения которой требуется около 30 с лишним минут) вы понимаете, что сделали что-то не так и хотите остановить программу.

Как это сделать в MATLAB?

Что я делаю полностью выключите MATLAB и перезапустите. Думаю, есть способ отменить казнь функции вместо этого.

Кто-нибудь знает, что это такое?

задан 30 сен ’09, 16:09

Если вы столкнетесь с ситуацией, когда CTRL + C не помогает, эта ветка может быть актуальной: stackoverflow.com/questions/4791144/… — Dennis Jaheruddin

1 ответы

ответ дан 02 окт ’09, 05:10

Я часто обнаруживал, что добавление вызова drawow () в цикл помогает Matlab перехватить Ctrl + C. — МТРВ

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками matlab process abort or задайте свой вопрос.

kaktusenok

При долгих вычислениях иногда необходимо прекратить выполнение программы. Сделать это можно нажатием клавиш Ctrl+C в главном окне MATLAB.

Например, имеется функция, которая очевидно никогда не завершит своё выполнение:

Запустив её, единственным способом прервать вычисления, как указывалось выше, является комбинация клавиш Ctrl+C, нажав которую MATLAB прекратить вычисления и покажет сообщение об ошибке:

В данном случае прерывание выполнения не приведёт ни к чему плохому. Однако в некоторых случаях требуется выполнять дополнительные действия (освобождать память, закрывать файлы, показывать на графике текущие результаты и т.д.).

К сожалению (а может к счастью) исключительная ситуация не возбуждается. Поэтому в следующем примере по нажатию на Ctrl+C не будет выведено сообщение:

Единственным и правильным решением будет использование функции onCleanup:

Здесь используется механизм анонимных функций. Пара полезных примеров есть в документации по функции (на самом деле классу) onCleanup. В конце работы функции slow_function будет вызвана анонимная функция, которая выполняет необходимые действия.

Идея в основе класса (именно класса!) onCleanup проста — создать объект, проинициализировать его дескриптором на анонимную функцию, а в деструкторе вызвать эту анонимную функцию.

Может возникнуть ложное впечатление, что код:
сперва выведет «Опа», а затем «Сообщение!», поскольку cleanupObj выйдет из области видимости условного оператора.

Однако в MATLAB область видимости определяется по другому, чем в C и подобных ему языках: удаление переменных происходит по завершению функции или по выполнению функции clear. А вот код:
действительно выведет сперва «Опа», а затем «Сообщение!».

Просто ещё раз впечатляет архитектура и мощь объектно-ориентированного программирования в MATLAB.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *