Можете ли вы сделать паузу в MATLAB?
В MATLAB я запускаю некоторый код, который требует времени для запуска. Я хотел бы приостановить код для проверки некоторых значений переменных. Есть ли способ сделать это без перезапуска кода с самого начала? Я не хочу прекращать программу; просто сделай паузу
4 ответа
Вы можете остановить выполнение и дать командную строку двумя способами, о которых я знаю:
- Ввод
keyboard
в вашем коде, где вы хотите остановиться. - Установка точки останова.
Вы можете возобновить и остановить выполнение с dbcont
а также dbquit
соответственно. Чтобы сделать шаг вперед, используйте dbstep
, dbstack
позволяет увидеть, где вы находитесь. Есть еще много команд. Страница справки для любого из них даст вам другие предложения.
Как отметил Деннис Джаэруддин, dbstop
также имеет несколько полезных функций, которые стоит попробовать. В частности, это возможность устанавливать условные и глобальные (любая строка, соответствующая критерию) точки останова через dbstop if
синтаксис. Например, dbstop if error
переходит к командной строке отладки при любой ошибке. Одно из его предложений, которое я сейчас делаю, заключается в dbstop if error
в startup.m
так что это поведение будет по умолчанию при запуске MATLAB. Вам может понадобиться создать этот файл в userpath
папки; edit(fullfile(regexp(userpath,'^[^;]*','match','once'),'startup.m'))
,
Одним из способов достижения того, что вы ищете, является использование разделов кода (также называемых ячейками кода), где вы делите свой код на разделы, разделенные линиями с двумя знаками процента (%%).
Затем в редакторе вы можете нажать ctrl+enter, чтобы выполнить текущий раздел кода, и ctrl+ вверх / вниз, чтобы перемещаться между разделами.
Ну, есть команда паузы, но тогда вы не можете проверить содержимое переменной в рабочей области, потому что программа работает.
Вероятно, вам нужно установить точку останова (см. Меню "Отладка" / клавиша F12).
В точке останова Matlab приостанавливает работу программы и входит в режим отладки, в котором вы можете просматривать и редактировать переменные. После завершения вы можете возобновить программу, где она была приостановлена.
Я не уверен в пользователях Windows, но если вы используете Linux, вы можете запустить Matlab в терминале, используя
matlab -nodesktop
затем, после запуска Matlab, перейдите в каталог вашего проекта и запустите сценарий Matlab. Теперь, когда вы хотите приостановить выполнение, вы можете использовать ctrl-Z
, Затем возобновить тип fg
, Надеюсь, это поможет.