Перейти к содержанию
    

MATLAB, выход из скрипта

У меня в процессе выполнения скрипта проверяется некое условие. Если оно не выполняется, дальнейшие вычисления можно не производить (всё равно будет ошибка). Хотелось бы, чтобы выполнение скрипта прерывалось и осуществлялся выход в главное (командное) окно.

Сейчас в таком случае я вывожу окошко с сообщением функцией msgbox, но после его закрытия скрипт продолжает "бежать" до того, как столкнётся с ошибкой.

В инете способа решения такой проблемы не нашёл. Способ try/catch, кажется, не то, что нужно. Может, кому приходилось делать подобное?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую.

А вот еще вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую.

Кстати, да. Работает. Не думал, что подходит не только для функции, но и для скрипта. Спасибо.

Это находил, но немного коряво получается, как там и указывал участник. Эти приёмы:

doc error

doc assert

работают, спасибо. Но выдают ошибку в командное окно, что, в общем-то, не страшно, но излишне и отвлекает. Кстати, всё отличие error от assert, как я понял, только в том, что не проверяется условие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На здоровье. Я не знаю, как у вас все устроено, но если мои вычисления не доходят до конца, то мне было бы интересно об этом узнать.

 

работают, спасибо. Но выдают ошибку в командное окно, что, в общем-то, не страшно, но излишне и отвлекает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На здоровье. Я не знаю, как у вас все устроено, но если мои вычисления не доходят до конца, то мне было бы интересно об этом узнать.

А я для этого перед выходом msgbox использую, чтобы показать, почему дальнейшие вычисления не имеют смысла. Информативнее и даёт понять, что не с алгоритмом проблема или ошибкой в коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я стараюсь разделять скрипты для расчетов и для визуализации.

 

Для 'расчётных' скриптов gui стараюсь не использовать. Это позволяет

- Экономить память, что ценно при параллельных вычислениях

- Считать на удаленной машине, используя только доступ к командной строке

- Отлаживать mex-функции

 

Для скриптов визуализации - там веселый карнавал, конечно.

 

А я для этого перед выходом msgbox использую...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Раньше и в Матлабе и в Октаве и в Сцайлабе это делалось простым брейком. Потом брейк ограничили, но еще работал ретурн.

Сейчас и это считается дурным тоном и возможность почти везде убрали.

Самый простой способ в Октаве это писать error("").

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

@Herz

msgbox - блокирующая. Лучше нарисовать пустую figure() и написать в нее text (X, Y, STRING)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...