2010-07-08 4 views
4

그래서 일부 Matlab 코드를 디버깅하고 일부 표현식에 대해 차원을 동의하지 않습니다. MATLAB이 올바른 선 등을 가리키는 것은 모두 좋은 점입니다. 그러나 Matlab이 오류 텍스트에 포함 된 변수의 크기를 출력하면 직접 크기를 조정할 필요가 없습니다. 때로는 for 루프의 깊숙한 곳에서는 모든 차원이 정확히 무엇인지 알아내는 것이 정말 번거 롭습니다.치수가 일치하지 않아서 오류가 발생하면 Matlab에 표현식의 모든 치수가 포함됩니까?

이렇게 설정이나 해킹이 있습니까?

답변

7

이 문제를 해결하는 가장 쉬운 방법은 명령 창에 dbstop if error을 입력 한 다음 코드를 실행하는 것입니다. 그런 다음 MATLAB은 오류를 발생시키기 전에 실행을 중지하고 오류가 발생하는 행에서 편집기를 엽니 다. 그런 다음 여유있게 배열 크기를 검사 할 수 있으며 코드에서 현재 활성화되어있는 모든 변수에 액세스 할 수 있기 때문에 명령 창에서 가능한 수정을 시도 할 수도 있습니다.

+0

가야합니다! 내 인생을 100 % 단순하게 만들었습니다. –

2

블록을 시도 할 수 있습니다. try-catch-end.

예.

try 
    %# Some error prone code 
    a = getA(b); 
catch err_msg 
    %# Display any information you want 
    disp(size(b)); 
    %# Display the error message 
    disp(err_msg.identifier); 
    disp(err_msg.message); 
end 

자신을 평가하려는 경우 catch 블록에 중단 점을 넣을 수도 있습니다.

+0

좋은 생각은 때때로 Matlab이 Java와 통합되어 있으며 여기에서 쉽게 항목을 적용 할 수 있다는 것을 잊어 버리는 경우가 있습니다. –

+0

@Reed : 참. 나는 일반적으로 'catch'블록에서 중단 점을 던져서 거기에 있으면 수동으로 검사 할 수 있습니다. – Jacob

관련 문제