2009-07-04 2 views
11

MATLAB의 m 파일 편집기로 작업 중이며 한 줄에서 다른 줄로 이동해야합니다. For ... end에서 점프해야하는 경우 일반적인 "while" 기술을 사용할 수 없습니다.
어쨌든 C에서 goto과 같이 한 줄에서 다른 줄로 건너 뛸 수 있습니까?MATLAB의 점프 명령

+0

내가 아는 한, Matlab에는 goto 문이 없습니다. 그러나 프로그램을 재구성하여 거의 항상 고토를 피할 수 있습니다. – danatel

+0

* 사용자가 구현 한 goto 문이 * 있습니다. 당신은 [파일 교환] (http://www.mathworks.com/matlabcentral/fileexchange/26949-matlab-goto-statement)에서 찾을 수 있습니다 –

답변

17

MATLAB에는 GOTO 문이 없다, 그러나 당신에게 도움이 될 수 루프와 함께 사용하기위한 몇 가지 다른 명령이 있습니다 :

  • CONTINUE : 루프 또는 동안의 나머지 명령을 건너 뜁니다이 문 및 다음 반복으로 이동하십시오.
  • BREAK :이 문은 for 또는 while 루프의 실행을 종료합니다.
+0

+1; 하지만 실제로, 거기 * * [MATLAB에있는 진술서] (http://www.mathworks.com/matlabcentral/fileexchange/26949-matlab-goto-statement) :) –

+0

@RodyOldenhuis 잠시 동안 나는 실제로 거기 있다고 생각했다. . 실제'goto '는 아니지만, 대부분의 경우 함수를 아주 잘 모방합니다. –

9

matlab에는 아무런 변화가 없습니다. 그러나 이것은 코드에 {if, else, elseif, end} 구조형을 사용하도록 코드를 구조화 할 수 없다는 것을 의미하지는 않습니다. 또는 {switch, case, end} 양식을 사용하십시오. 또는 함수 (또는 하위 함수 또는 중첩 함수)를 호출하여 문제를 해결할 수 있습니다. 또는 continue/break를 사용하여 코드를 구조화하십시오. 기존 플로우 컨트롤 중 하나를 사용하여 이러한 문제를 해결할 수 있습니다.

함수를 사용하면 다른 방법으로 코드를 향상시킬 수 있습니다. 모듈을 모듈화하여 디버깅 및 쓰기가 쉬워 진 경우가 많습니다.

-1
for j = 1: 1: 24 
    % LABEL start 
a = a + j; 
if a > 10 
goto('start') % If condition satisfied goto label start 
return 
else 
    a = a + 1; 
end 
end 
+0

Matlab 2016b를 사용하여'정의되지 않은 함수 또는 변수 'goto'가 표시됩니다. – MasterHD