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

    

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

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

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

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

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


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

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

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

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


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

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

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

doc error

doc assert

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

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


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

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

 

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

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


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

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

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


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

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

 

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

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

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

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

 

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

 

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

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


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

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

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

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

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


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

@Herz

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

 

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация