2016-07-05 2 views
2

비슷한 question을 살펴 봤지만 그 안에있는 연결된 질문과 대답은 정확한 문제와 일치하지 않았습니다.Matlab이 명령 창 출력의 위치를 ​​찾았습니다.

프로그램에 의해 실행되는 여러 MATLAB 파일이 있다고 가정합니다. 코드를 실행하는 동안 명령 창에 여러 개의 출력이 표시됩니다.이 출력은 제거 할 수 있습니다. 물론 grep 모두 dispprintf 명령을 사용할 수 있습니다. 문제가 없습니다. 그러나 Matlab을 사용하지 않고서도 세미콜론 누락에 대한 경고를주는 특정 계산이있을 수 있습니다. 방법이 있나요 예는 명령 창에 1를 인쇄 할

function dummy1 
norm(1) 
end 

것, 그러나

function dummy2 
1+1 
end 

의 경우 것 같은 matlab에 나에게 누락 된 세미콜론에 대한 경고를 제공하지 않습니다 명령 창에 인쇄되는 명령의 위치를 ​​감지합니까?

+0

이것은 ['evalc'] (http://ch.mathworks.com/help/matlab/ref/evalc.html)를 사용하여 명령 행에 대한 모든 출력을 억제하는 몇 가지 경우 중 하나 일 수 있습니다. 첫 번째 장소. 이렇게하면'evalc ('main.m');와 같은 주요 함수를 호출 할 수 있습니다. 'evalc '를 사용할 때는'diary','more','input'은 사용할 수 없습니다. 이것은 귀하의 질문에 대답하지 않지만 초기 * 문제 *를 해결합니다. – Matt

답변

0

지나치게 복잡하게 만들 필요가 없습니다. 코드에 몇 가지 중단 점을 배치하고 원하지 않는 결과를 생성하는 선을 찾을 때까지 단계별로 진행하십시오. 그런 다음 ;을 사용하여 출력을 억제하십시오. 가장 좋은 방법은 ;을 절대로 생략하지 않는 것입니다. 빠르게 표시하려면 disp과 같은 명령을 사용하십시오.

또한 적절한 로거를 통해 모든 것을 기록하는 데 익숙해 져야합니다. log4j. 이렇게하면 실제로 기록한 내용과 단순한 구성을 통해 어디에 프로그래밍 방식으로 변경 될 수 있는지에 대한 세분화 된 제어가 가능합니다. 만약 당신이 그것을 사용했다면, 어떤 로그 메시지가 인쇄되었는지를 알아내는 것이 문제가되지 않을 것입니다. 인쇄 된 구성 요소 이름을 볼 수 있기 때문입니다.