2016-12-21 3 views
-1

나는 내가 루프에서 함수를 호출 후 일시 정지 다음 코드가 모든 반복 : 내가 기대 마다 반복 한 후 루프 일시 중지 및 결과 MATLAB을 표시

[num,txt1,~]=xlsread('test.xlsx',1); 
for i=2:5 
    [num,txt2,~]=xlsread('test.xlsx',i); 
    for j=1:3 
     txt_input=txt2(2:end,j); 
     neurPep=neuroPred(txt1,txt_input); 
     pause 
    end 
    pause 
end 

값을 표시 할 작업 공간 루프를 일시 중지 할 때마다 계산 된 변수의 값이 계산되지만 마지막 반복에 해당하는 값만 끝까지 표시됩니다.

매 루프마다 값이 업데이트되고 작업 영역에 표시되도록 변경해야하는 사항은 무엇입니까?

+6

내가 keyboard''와'pause'을 대체 할 것이다. 'keyboard'는 디버거 인터페이스로 여러분을 데려다 놓습니다. 계속하려면 명령 행에'dbcont'를 입력하십시오. – Matt

답변

3

pause 명령은 Matlab 실행 만 일시 중단합니다. Matlab 실행의 일반적인 흐름은 작업 공간을 업데이트하지 않기 때문에 일시 중지는이 인스턴스에서 원하는 것을 수행하지 않습니다. keyboard 명령은 Matlab을 디버그 모드로 만듭니다. 이 모드는 작업 공간을 현재 값으로 업데이트합니다. 명령 행에 dbcont을 입력하여 실행을 계속할 수 있습니다.

또 다른 옵션은 편집기에서 .m 파일을 열고 줄 왼쪽의 줄 번호 옆에있는 "-"를 클릭하는 것입니다. 또한 디버그 모드로 전환됩니다. 이 경우 F5를 누르고 dbcont을 입력하거나 재생 버튼을 눌러 실행을 계속하십시오.

테이크 아웃은 다음과 같습니다. 디버그 모드는 친구입니다.

다음은 참조입니다 : pausekeyboard