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

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

  • автор:

Документация

Остановить выполнение MATLAB ® команда, нажмите Ctrl+C или Ctrl+Break.

На платформах Apple Macintosh также можно использовать Command +. (командная клавиша и ключ периода).

Ctrl+C не всегда останавливает выполнение для файлов, которые запускают долгое время или тот созданный-ins вызов или файлы MEX, которые запускают долгое время. Если вы испытываете эту проблему, включаете drawnow приостановка , или getframe функционируйте в своем файле, например, в большом цикле. Кроме того, Ctrl+C может быть менее быстро реагирующим, если вы начинаете MATLAB с -nodesktop опция.

Примечание

Для определенных операций, останавливая программу может сгенерировать ошибки в Командном окне.

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

break

break отключает выполнение a for или while цикл. Операторы в цикле после break оператор не выполняется.

Во вложенных циклах, break выходы только из цикла, в котором это происходит. Управляйте передачами в оператор, который следует end из того цикла.

Примеры

Выйдите из цикла, прежде чем выражение будет ложным

Суммируйте последовательность случайных чисел, пока следующее случайное число не будет больше верхнего предела. Затем выйдите из цикла с помощью break оператор.

limit = 0.8; s = 0; while 1 tmp = rand; if tmp > limit break end s = s + tmp; end

Советы

  • break оператор выходит из for или while цикл полностью. Чтобы пропустить остальную часть инструкций в цикле и начать следующую итерацию, используйте a continue оператор.
  • break не задан вне for или while цикл. Чтобы выйти из функции, использовать return .

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

quit

quit отключает MATLAB ® программа. quit функция автоматически не сохраняет рабочую область.

Чтобы прервать команду MATLAB, смотрите Выполнение Остановки.

quit cancel для использования в finish.m скрипт и выход отмен. Это не оказывает влияния больше нигде.

quit force обходы finish.m и отключает MATLAB. Используйте этот синтаксис, чтобы заменить finish скрипт, если скрипт не позволяет вам выйти.

quit( code ) возвращает заданное значение как код выхода MATLAB.

quit( code ,»force») обходы finish.m и отключает MATLAB с кодом выхода.

Пример: quit(0,»force»)

Входные параметры

code — Код выхода
0 (значений по умолчанию) | целое число со знаком

Код выхода в виде целого числа со знаком. На Windows ® платформы, MATLAB возвращает значения в области значений INT_MIN к INT_MAX (-2147483647 к 2147483647). На Linux ® и платформы macOS , ​ MATLAB возвращает значения между 0 и 255.

Код выхода возвращен по умолчанию на macOS и Linux. На Windows начните MATLAB с -wait опция.

Пример: quit(1)

Ограничения

  • MATLAB Online™ не поддерживает отображение поля диалогового окна подтверждения или использование finish.m скрипт. Перед тем, чтобы выходить из системы MATLAB Online сохранил открытые файлы и данные о сеансе.

Альтернативы

Нажмите близкую кнопку на рабочем столе MATLAB.

Смотрите также

Темы

Представлено до R2006a

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

kaktusenok

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

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

function slow_function i = 1; while true i = i + 1; end end

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

>> slow_function Operation terminated by user during slow_function (line 5)

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

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

function slow_function i = 1; try while true i = i + 1; end catch disp('Опа!') end end
>> slow_function Operation terminated by user during slow_function (line 6)

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

function slow_function i = 1; cleanupObj = onCleanup( @() disp('Опа!') ); while true i = i + 1; end end
>> slow_function Опа! Operation terminated by user during slow_function (line 6)

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

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

Может возникнуть ложное впечатление, что код:

function slow_function if true cleanupObj = onCleanup( @() disp('Опа!') ); end disp('Сообщение'); end

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

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

function slow_function if true cleanupObj = onCleanup( @() disp('Опа!') ); clear cleanupObj; end disp('Сообщение'); end

действительно выведет сперва «Опа», а затем «Сообщение!».

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

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

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