Команда перехода в MATLAB

Я работаю с редактором m-файлов MATLAB, и мне нужно переходить с одной строки на другую. Если мне нужно перейти изнутри For...end, я не могу использовать обычную технику "пока".
Можно ли как-то перепрыгнуть со строки на другую, как goto в C?


person Community    schedule 04.07.2009    source источник
comment
Насколько я знаю, в Matlab нет оператора goto. Но вы почти всегда можете избежать goto, реструктурировав свою программу.   -  person danatel    schedule 04.07.2009
comment
Существует существует оператор goto, реализованный пользователем; вы можете найти его на обмене файлами   -  person Rody Oldenhuis    schedule 11.05.2013


Ответы (4)


В MATLAB нет оператора goto, но есть несколько других команд для использования с циклами, которые могут вам помочь:

  • continue: этот оператор пропустит оставшиеся команды через какое-то время. цикла и перейти к следующей итерации.
  • break: этот оператор завершает выполнение цикла for или while.
person gnovice    schedule 04.07.2009
comment
+1; но на самом деле есть оператор goto в Матлаб :) - person Rody Oldenhuis; 11.05.2013
comment
@RodyOldenhuis На секунду я действительно подумал, что есть. Это не настоящий goto, но в большинстве случаев он довольно хорошо имитирует поведение :) - person Eitan T; 11.05.2013

В матлабе нет goto. Однако это не означает, что вы не можете структурировать свой код для использования структурной формы {if, else, elseif, end}. Или используйте форму {switch, case, end}. Или вызовите функцию (или подфункцию, или вложенную функцию), чтобы решить вашу проблему. Или используйте continue/break для структурирования кода. Всегда можно решить эти проблемы, используя одну из существующих форм управления потоком.

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

person Community    schedule 05.07.2009

который легко решает проблему:

caseno = input('input your case no');

switch (caseno)
     case 1
          disp('this first section will run');
     case 2
          disp('this second section will run');
     otherwise
          disp('wrong case no');
end
person Seyhan ÖZEN    schedule 18.01.2019

person    schedule
comment
Я получаю сообщение об ошибке Undefined function or variable 'goto'. при использовании Matlab 2016b. - person MasterHD; 02.04.2017