Herz 5 6 июня, 2018 Опубликовано 6 июня, 2018 · Жалоба У меня в процессе выполнения скрипта проверяется некое условие. Если оно не выполняется, дальнейшие вычисления можно не производить (всё равно будет ошибка). Хотелось бы, чтобы выполнение скрипта прерывалось и осуществлялся выход в главное (командное) окно. Сейчас в таком случае я вывожу окошко с сообщением функцией msgbox, но после его закрытия скрипт продолжает "бежать" до того, как столкнётся с ошибкой. В инете способа решения такой проблемы не нашёл. Способ try/catch, кажется, не то, что нужно. Может, кому приходилось делать подобное? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 6 июня, 2018 Опубликовано 6 июня, 2018 · Жалоба return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую. А вот еще вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 3 6 июня, 2018 Опубликовано 6 июня, 2018 · Жалоба doc error doc assert Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 7 июня, 2018 Опубликовано 7 июня, 2018 · Жалоба return вроде бы. Прервет исполнение текущей функции и вернет в вызывающую. Кстати, да. Работает. Не думал, что подходит не только для функции, но и для скрипта. Спасибо. А вот еще вариант. Это находил, но немного коряво получается, как там и указывал участник. Эти приёмы: doc error doc assert работают, спасибо. Но выдают ошибку в командное окно, что, в общем-то, не страшно, но излишне и отвлекает. Кстати, всё отличие error от assert, как я понял, только в том, что не проверяется условие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 3 23 июня, 2018 Опубликовано 23 июня, 2018 · Жалоба На здоровье. Я не знаю, как у вас все устроено, но если мои вычисления не доходят до конца, то мне было бы интересно об этом узнать. работают, спасибо. Но выдают ошибку в командное окно, что, в общем-то, не страшно, но излишне и отвлекает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 24 июня, 2018 Опубликовано 24 июня, 2018 · Жалоба На здоровье. Я не знаю, как у вас все устроено, но если мои вычисления не доходят до конца, то мне было бы интересно об этом узнать. А я для этого перед выходом msgbox использую, чтобы показать, почему дальнейшие вычисления не имеют смысла. Информативнее и даёт понять, что не с алгоритмом проблема или ошибкой в коде. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 3 25 июня, 2018 Опубликовано 25 июня, 2018 · Жалоба Я стараюсь разделять скрипты для расчетов и для визуализации. Для 'расчётных' скриптов gui стараюсь не использовать. Это позволяет - Экономить память, что ценно при параллельных вычислениях - Считать на удаленной машине, используя только доступ к командной строке - Отлаживать mex-функции Для скриптов визуализации - там веселый карнавал, конечно. А я для этого перед выходом msgbox использую... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hale 1 18 октября, 2018 Опубликовано 18 октября, 2018 · Жалоба Раньше и в Матлабе и в Октаве и в Сцайлабе это делалось простым брейком. Потом брейк ограничили, но еще работал ретурн. Сейчас и это считается дурным тоном и возможность почти везде убрали. Самый простой способ в Октаве это писать error(""). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Hale 1 18 октября, 2018 Опубликовано 18 октября, 2018 · Жалоба @Herz msgbox - блокирующая. Лучше нарисовать пустую figure() и написать в нее text (X, Y, STRING) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться