Матлаб как остановить выполнение скрипта
Документация
Остановите выполнение MATLAB временно
Синтаксис
Описание
pause временно остановки MATLAB ® выполнение и ожидает пользователя, чтобы нажать любую клавишу. pause функционируйте также временно останавливает выполнение Simulink ® модели, но не приостанавливает их перекрашивание.
Примечание
Если вы ранее отключили установку паузы, повторно включите ее с помощью pause(‘on’) для этого вызова, чтобы вступить в силу.
pause( n ) приостанавливает выполнение для n за секунды до продолжения. Приостановка должна быть позволена для этого вызова вступить в силу.
pause( state ) включает, отключает или отображает текущую установку паузы.
Примеры
Приостановка выполнения
Приостановите выполнение в течение 5 секунд. Блоки MATLAB, или скрывается, командная строка ( >> ) в то время как это приостанавливает выполнение.
Отключите приостанавливают установку
Отключите установку паузы и запросите текущее состояние.
Приостановите выполнение в течение 100 секунд. Поскольку установка паузы выключена, MATLAB игнорирует просьбу приостановить выполнение, и сразу возвращает командную строку.
Включите установку паузы.
Сохраните и восстановление приостанавливают состояние
Сохраните текущую установку паузы и затем отключите способность приостановить выполнение.
Запросите текущую установку паузы.
Восстановите начальное состояние паузы.
В качестве альтернативы можно сохранить запрошенное значение состояния паузы и затем отключить способность приостановить выполнение.
Восстановите начальное состояние паузы.
Входные параметры
n — Номер секунд
неотрицательное, вещественное число
Номер секунд, чтобы приостановить выполнение, заданное как неотрицательное, вещественное число.
Ввод pause(inf) помещает вас в бесконечный цикл. Чтобы возвратиться к подсказке MATLAB, введите Ctrl+C.
Пример: pause(3) делает паузу в течение 3 секунд.
Пример: pause(5/1000) делает паузу для 5 миллисекунд.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
state — Установка Pause
‘on’ | ‘off’ | ‘query’
Чтобы запустить интерактивный необслуживаемый код, отключите установку паузы.
Советы
Точность pause функция подвергается разрешению планирования вашей операционной системы, и к другому параллельному системному действию. Точность не гарантируется, и более прекрасные результаты разрешения в более высокой относительной погрешности.
В то время как MATLAB приостановлен, следующее продолжите выполняться:
Перекрашивая окон рисунка, Диаграмм Simulink и Java ® windows
Коллбэки из окон рисунка
Обработка событий из окон Java
Расширенные возможности
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
Использование pause \in parfor циклы не поддерживаются для генерации кода MEX.
Сгенерированный код обрезает, приостанавливают значения задержки к uint32 расположитесь во время выполнения во время выполнения.
В MATLAB, после pause выполнение можно нажать любую клавишу, чтобы продолжиться. При выполнении сгенерированного кода от терминала необходимо нажать Enter.
Если вы вызываете сгенерированный код из MATLAB с system команда или символ восклицательного знака, с SIL, или с PIL, вводимые символы не могут быть правильно перенаправлены от среды MATLAB до сгенерированного кода. Поэтому сгенерированный код не может возобновиться.
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Как остановить работу script в Matlab
Я пишу длинный script в Matlab, например
Кажется, бежит вечно. Becasue Я нажимаю F5 в окне редактора. Поэтому я не могу нажать C-Break, чтобы остановиться в консоли Matlab.
ОТВЕТЫ
Ответ 1
Поэтому я не думаю, что существует какой-либо вариант. Это происходит со многими сложными функциями Matlab. Либо мы должны ждать, либо не использовать их!
Ответ 2
Если ctrl + c не отвечает сразу, потому что ваш script слишком длинный/сложный, удерживайте его.
Команда break не запускается, когда matlab выполняет некоторые из своих более глубоких скриптов, и либо он не будет регистрировать последовательность ctrl в буфере, либо очищает буфер непосредственно перед или сразу после того, как он завершит эти фрагменты кода, В любом случае, когда matlab вернется, чтобы выполнить больше вашего script, он распознает, что вы держите ctrl + c и завершаете.
Для более длинных программ я обычно стараюсь найти хорошее место для предоставления обновления статуса, и я всегда сопровождаю это с некоторым промежутком времени, используя tic и toc. В зависимости от того, что я делаю, я мог бы использовать время выполнения, время сегмента, некоторое среднее значение и т.д.
но похоже, что у них есть и некоторые новые функции.
Ответ 3
MATLAB не отвечает на Ctrl-C при выполнении функции mex, такой как svd. Также, когда MATLAB выделяет большой кусок памяти, он не отвечает. Хорошая практика заключается в том, чтобы всегда запускать ваши функции для небольшого объема данных, и когда все тестовые прогоны запускают его для фактического масштаба. Когда время является проблемой, вам нужно проанализировать, сколько времени проходит каждый сегмент кода, а также сложная сложность времени.
Ответ 4
Рассмотрим несколько сеансов Matlab. Храните главное окно сеанса (красивое со всеми цветами, файловый менеджер, история команд, рабочее пространство, редактор и т.д.) Для запуска файлов, которые, как вы знаете, завершатся.
Вещь, с которой вы экспериментируете, скажите, что вы возитесь с пакетом ode, и вы получаете множество предупреждений: матрица единственная, потому что вы изменили какой-то параметр и не предсказали, что произойдет, запустите в отдельном сеансе:
Ответ 5
Ответ 6
Поскольку вы упомянули диспетчер задач, я угадаю, что вы используете Windows. Предполагая, что вы запускаете свой script в редакторе, если вы не против выхода из редактора одновременно с выходом из запущенной программы, сочетание клавиш для завершения процесса:
(Под этим я имею в виду одновременное нажатие клавиш «Alt» и «F4» на клавиатуре.)
В качестве альтернативы, как упоминалось в других ответах,
также должен работать, но не выйдет из редактора.
Ответ 7
если вы используете ваш matlab для linux, вы можете завершить работу matlab командой linux consule. сначала вы должны найти PID-номер matlab с помощью этого кода:
Ответ 8
вы можете вставить проверку времени в цикле с интенсивным или возможным тупиком, т.е.
как остановить работающий скрипт в Matlab
Я пишу длинный скрипт на Matlab, например.
Кажется, работает вечно. Потому что я нажимаю F5 в окне редактора. Поэтому я не могу нажать C-Break для остановки в консоли Matlab.
Поэтому я не думаю, что какой-либо вариант существует. Это происходит со многими сложными функциями matlab. Либо мы должны ждать, либо не использовать их!.
Если Ctrl + C не отвечает сразу, потому что ваш скрипт слишком длинный/сложный, удерживайте его.
Команда break не запускается, когда matlab выполняет некоторые из своих более глубоких сценариев, и либо не регистрирует последовательность ctrl в буфере, либо очищает буфер непосредственно перед или сразу после завершения этих фрагментов кода. В любом случае, когда Matlab вернется, чтобы выполнить больше вашего скрипта, он распознает, что вы держите Ctrl + C, и завершите работу.
Для программ, которые работают дольше, я обычно стараюсь найти подходящее место для обновления статуса, и я всегда сопровождаю это определенным количеством времени, используя tic и toc. В зависимости от того, что я делаю, я могу использовать время выполнения, время сегмента, какое-то среднее значение и т.д.
но, похоже, у них тоже есть для этого новые функции.
MATLAB не отвечает на Ctrl-C при выполнении функции, реализованной в mex, такой как svd. Также, когда MATLAB выделяет большой кусок памяти, он не отвечает. Хорошей практикой является всегда запускать ваши функции для небольшого объема данных, а когда все тесты проходят, запускать их для фактического масштаба. Когда время является проблемой, вы должны проанализировать, сколько времени работает каждый сегмент кода, а также их грубую временную сложность.
Подумайте о проведении нескольких сессий Matlab. Оставьте главное окно сеанса (красивое со всеми цветами, файловым менеджером, историей команд, рабочим пространством, редактором и т.д.) Для запуска того, что, как вы знаете, прекратится.
Вещи, с которыми вы экспериментируете, скажем, вы возитесь с ode suite и получаете много предупреждений: матрица единственного числа, потому что вы изменили какой-то параметр и не предсказали, что произойдет, запустится в отдельном сеансе:
Поскольку вы упомянули диспетчер задач, я думаю, вы используете Windows. Предполагая, что вы запускаете свой скрипт в редакторе, если вы не против выхода из редактора одновременно с выходом из работающей программы, комбинация клавиш для завершения процесса:
(Под этим я подразумеваю одновременное нажатие клавиш «Alt» и «F4» на клавиатуре.)
В качестве альтернативы, как упоминалось в других ответах,
также должен работать, но не будет выходить из редактора.
pause
Stop MATLAB execution temporarily
Syntax
Description
pause temporarily stops MATLAB ® execution and waits for the user to press any key. The pause function also temporarily stops the execution of Simulink ® models, but does not pause their repainting.
Note
If you previously disabled the pause setting, reenable it using pause(‘on’) for this call to take effect.
pause( n ) pauses execution for n seconds before continuing. Pausing must be enabled for this call to take effect.
pause( state ) enables, disables, or displays the current pause setting.
Examples
Pause Execution
Pause execution for 5 seconds. MATLAB blocks, or hides, the command prompt ( >> ) while it pauses execution.
Disable Pause Setting
Disable the pause setting and query the current state.
Pause execution for 100 seconds. Since the pause setting is off, MATLAB ignores the request to pause execution, and immediately returns the command prompt.
Enable the pause setting.
Save and Restore Pause State
Store the current pause setting and then disable the ability to pause execution.
Query the current pause setting.
Restore the initial pause state.
Alternatively, you can store the queried value of the pause state and then disable the ability to pause execution.
Restore the initial pause state.
Input Arguments
n — Number of seconds
nonnegative, real number
Number of seconds to pause execution specified as a nonnegative, real number.
Typing pause(inf) puts you into an infinite loop. To return to the MATLAB prompt, type Ctrl+C.
Example: pause(3) pauses for 3 seconds.
Example: pause(5/1000) pauses for 5 milliseconds.
Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
state — Pause setting
‘on’ | ‘off’ | ‘query’
To run interactive code unattended, disable the pause setting.
The accuracy of the pause function is subject to the scheduling resolution of your operating system, and to other concurrent system activity. The accuracy is not guaranteed, and finer resolution results in higher relative error.
While MATLAB is paused, the following continue to execute:
Repainting of figure windows, Simulink block diagrams, and Java ® windows
Callbacks from figure windows
Event handling from Java windows
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The use of pause in parfor loops is not supported for MEX code generation.
The generated code truncates pause delay values to uint32 range during run-time execution.
In MATLAB, after pause execution you can press any key to continue. When running generated code from the terminal, you must press enter.
If you call the generated code from MATLAB with the system command or exclamation point character, with SIL, or with PIL, input characters may not be correctly redirected from the MATLAB environment to the generated code. Therefore the generated code might not resume.
This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.
как остановить запущенный скрипт в Matlab
Я пишу длинный запущенный скрипт в Matlab, например
Кажется, он бежит вечно. Потому что я нажимаю F5 в окне редактора. Поэтому я не могу нажать C-Break, чтобы остановиться в консоли Matlab.
8 ответов
У меня есть один класс thread, который находится в onCreate активности. class MyThread extends Thread < void run() < //My code which takes time. >> //————————— To run the thread MyThread mThread = new MyThread(); mThread.start(); По некоторым внешним событиям мне нужно остановить.
Как программно остановить запущенный запрос mysql? Проблема, с которой я сталкиваюсь, заключается в том, что запрос строится с использованием предоставленных Пользователем данных и иногда может занимать очень много времени для выполнения (большие таблицы 15-30 миллионов строк). Я хочу предложить.
Matlab справка гласит следующее- Для M-файлов, которые работают длительное время, или которые вызывают встроенные модули, или MEX-файлов, которые работают длительное время, Ctrl+C не всегда эффективно останавливает выполнение. Как правило, это происходит на платформах Microsoft Windows, а не UNIX[1]. Если вы столкнулись с этой проблемой, вы можете помочь MATLAB прервать выполнение, включив функцию drawnow, pause или getframe в свой M-файл, например, в большой цикл. Обратите внимание, что Ctrl+C может быть менее отзывчивым, если вы запустили MATLAB с параметром-nodesktop.
Поэтому я не думаю, что существует какой-либо вариант. Это происходит со многими сложными функциями matlab. Либо мы должны подождать, либо не использовать их!.
Если ctrl+c не отвечает сразу, потому что ваш сценарий слишком long/complex,, удерживайте его.
Команда break не запускается, когда matlab выполняет некоторые из своих более глубоких сценариев, и либо она не регистрирует последовательность ctrl в буфере, либо очищает буфер непосредственно перед или сразу после завершения этих фрагментов кода. В любом случае, когда matlab вернется, чтобы выполнить больше вашего скрипта, он распознает, что вы удерживаете ctrl+c, и завершит работу.
Для более длительных программ я обычно стараюсь найти хорошее место для обновления статуса, и я всегда сопровождаю это некоторой мерой времени, используя tic и toc. В зависимости от того, что я делаю, я могу использовать время выполнения, время сегмента, какое-то среднее значение и т. Д.
но, похоже, у них есть и более новые функции для этого.
MATLAB не реагирует на Ctrl-C при выполнении функции, реализованной в mex, такой как svd. Кроме того, когда MATLAB выделяет большой кусок памяти, он не отвечает. Хорошая практика заключается в том, чтобы всегда запускать свои функции для небольшого объема данных, а когда все тесты проходят, запускать их для фактического масштаба. Когда возникает проблема со временем, вам нужно проанализировать, сколько времени выполняется каждый сегмент кода, а также их приблизительную временную сложность.
Подумайте о том, чтобы провести несколько сеансов matlab. Сохраните главное окно сеанса (красивое, со всеми цветами, файловым менеджером, историей команд, рабочим пространством, редактором и т. Д.) Для запуска вещей, которые, как вы знаете, завершатся.
Вещи, с которыми вы экспериментируете, скажем, вы возитесь с пакетом ode, и вы получаете множество предупреждений: matrix singular, потому что вы изменили какой-то параметр и не предсказали, что произойдет, запускается в отдельном сеансе:
Есть ли способ остановить скрипт, запущенный с ‘run’ или ‘source’ из Matlab / GNU Octave? Я имею в виду, в отличие от Ctrl-C, скажем, что заданное условие (возможно, заданное глобальными переменными) выполняется и ему посылается сигнал разрыва. Пример: Сценарий haltable.m должен быть остановлен.
Одно из решений, которое я принял-для использования с кодом java, но концепция та же, что и с mexFunctions, только более запутанная-это вернуть FutureValue, а затем выполнить цикл, в то время как FutureValue.finished() или что-то еще возвращает true. Фактический код выполняется в другом thread/process., обертывая try,catch вокруг этого, и FutureValue.cancel() в блоке catch работает для меня.
В случае функций mex вам нужно будет вернуть некоторый указатель (в виде int), Который указывает на структуру/объект, содержащий все необходимые данные (собственный обработчик потоков, bool для завершения и т. Д.). В случае встроенного mexFunction ваш mexFunction, скорее всего, должен будет вызвать этот mexFunction в отдельном потоке. В конце концов, функции Mex-это всего лишь DLLs/общие объекты.
Поскольку вы упомянули Диспетчер задач, я предполагаю, что вы используете Windows. Предполагая, что вы запускаете свой сценарий в редакторе, если вы не возражаете против выхода из редактора одновременно с выходом из запущенной программы, сочетание клавиш для завершения процесса:
(Под этим я подразумеваю одновременное нажатие клавиш ‘Alt’ и ‘F4’ на клавиатуре.)
В качестве альтернативы, как упоминалось в других ответах,
также должен работать, но не выйдет из редактора.
если вы запускаете matlab на linux, вы можете завершить matlab командой в linux consule. сначала вы должны найти PID номер matlab по этому коду:
вы можете вставить проверку времени в цикл с интенсивной или возможной тупиковой ситуацией, т. Е.
где в этом разделе
Похожие вопросы:
Strg+C останавливает и убивает скрипт Matlab (по крайней мере, иногда). Но есть ли способ остановить Matlab, взглянуть на некоторые переменные и продолжить вычисление? Я не говорю о том, чтобы.
Есть способ запустить другой скрипт в python, сделав это: import os os.system(python [name of script].py) Так как же я могу остановить другой уже запущенный скрипт? Я хотел бы остановить сценарий.
Мое приложение имеет два вида деятельности. Действие первое (A1) запускает поток. Предположим, что это действие (А1) переходит в состояние паузы. Я хочу безопасно остановить запущенный поток; как.
У меня есть один класс thread, который находится в onCreate активности. class MyThread extends Thread < void run() < //My code which takes time. >> //————————— To run the thread.
Как программно остановить запущенный запрос mysql? Проблема, с которой я сталкиваюсь, заключается в том, что запрос строится с использованием предоставленных Пользователем данных и иногда может.
Есть ли способ остановить скрипт, запущенный с ‘run’ или ‘source’ из Matlab / GNU Octave? Я имею в виду, в отличие от Ctrl-C, скажем, что заданное условие (возможно, заданное глобальными.
Я пишу службу диспетчера задач, и мне нужно принудительно закрыть любой запущенный процесс, скажем браузер, я пытался использовать killBackgroundProcesses,restartPackage,killProcess, но ни один из.