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