Есть ли способ остановить выполнение программы matlab из отладчика, как это делает ctrl + c, но затем иметь возможность продолжить выполнение (как вы можете, скажем, c #)?
Если нет, есть ли лучший способ обойти это, кроме попыток упреждающей установки точек останова или операторов dbstop в вашем коде matlab?
Я хотел бы иметь возможность прервать длительную симуляцию, чтобы посмотреть текущее состояние, а затем продолжить симуляцию.
В настоящее время я использую / рассматриваю два варианта:
Команды dbstop (или (условные) точки останова) в коде.
Недостатком является то, что иногда я не хочу останавливать симуляцию на несколько часов, иногда хочу остановиться через несколько секунд (и я не обязательно знаю это заранее), и это не работает с таким подходом: Если я устанавливаю условие прерывания на прерывание каждые 5 минут, я не могу оставлять Matlab работающим часами без взаимодействия. Если я установлю условие выше, мне придется слишком долго ждать, пока условие будет выполнено.
включает код для сохранения рабочей области каждые несколько секунд / минут и импорта рабочей области во второй экземпляр matlab. Недостаток в том, что это очень хлопотно и не обязательно позволяет мне продолжить симуляцию с состоянием сохраненного рабочего пространства, а затем выполнить код в течение нескольких итераций.
Я надеюсь, что есть лучшее решение, чем любой из 2. Спасибо за любой совет!
Редактировать : Я думаю, что я собираюсь написать простую функцию matlab, которая проверяет переменную среды или файл на диске каждую итерацию и вызывает dbstop, если я установлю флаг в этом файле или env , Таким образом, я могу контролировать, когда (и при необходимости, какой из нескольких) точка останова попадает извне Matlab, редактируя файл. Грязно, но должно работать.