Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум разработчиков электроники ELECTRONIX.ru _ Вопросы системного уровня проектирования _ MATLAB, выход из скрипта

Автор: Herz Jun 6 2018, 19:13

У меня в процессе выполнения скрипта проверяется некое условие. Если оно не выполняется, дальнейшие вычисления можно не производить (всё равно будет ошибка). Хотелось бы, чтобы выполнение скрипта прерывалось и осуществлялся выход в главное (командное) окно.
Сейчас в таком случае я вывожу окошко с сообщением функцией msgbox, но после его закрытия скрипт продолжает "бежать" до того, как столкнётся с ошибкой.
В инете способа решения такой проблемы не нашёл. Способ try/catch, кажется, не то, что нужно. Может, кому приходилось делать подобное?

Автор: alexunder Jun 6 2018, 20:33

return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую.
А вот http://electronix.ru/redirect.php?http://matlab.exponenta.ru/forum/matlab-matlab-f1/prervat-vypolnenie-programmy-usloviyu-t7355.html.

Автор: Fat Robot Jun 6 2018, 21:03

doc error
doc assert

Автор: Herz Jun 7 2018, 07:42

Цитата(alexunder @ Jun 6 2018, 23:33) *
return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую.

Кстати, да. Работает. Не думал, что подходит не только для функции, но и для скрипта. Спасибо.
Цитата
А вот http://electronix.ru/redirect.php?http://matlab.exponenta.ru/forum/matlab-matlab-f1/prervat-vypolnenie-programmy-usloviyu-t7355.html.

Это находил, но немного коряво получается, как там и указывал участник. Эти приёмы:
Цитата(Fat Robot @ Jun 7 2018, 00:03) *
doc error
doc assert

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

Автор: Fat Robot Jun 23 2018, 18:59

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

Цитата(Herz @ Jun 7 2018, 11:42) *
работают, спасибо. Но выдают ошибку в командное окно, что, в общем-то, не страшно, но излишне и отвлекает.

Автор: Herz Jun 24 2018, 10:01

Цитата(Fat Robot @ Jun 23 2018, 21:59) *
На здоровье. Я не знаю, как у вас все устроено, но если мои вычисления не доходят до конца, то мне было бы интересно об этом узнать.

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

Автор: Fat Robot Jun 25 2018, 09:20

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

Для 'расчётных' скриптов gui стараюсь не использовать. Это позволяет
- Экономить память, что ценно при параллельных вычислениях
- Считать на удаленной машине, используя только доступ к командной строке
- Отлаживать mex-функции

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

Цитата(Herz @ Jun 24 2018, 14:01) *
А я для этого перед выходом msgbox использую...

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)