2014-10-21 10 views
1

mcc로 실행 파일을 만들었습니다. .m 파일에는 값을 읽고 플롯하는 간단한 함수가 있습니다. DOS에서 실행 한 후에는 DOS로 실행을 반환하지 않고 멈 춥니 다. 2 질문 : 1) 어떻게 실행을 DOS로 되돌릴 수 있습니까? "return"과 "exit"명령을 시도했지만 도움이 안되었습니다 2) DOS 창을 닫는 방법? 배치 파일을 사용하는 유일한 방법이거나 .m 파일의 명령을 사용하여 수행 할 수 있습니까? 감사 A.mcc (Matlab 컴파일러)로 컴파일 된 exe 파일을 실행 한 후 프롬프트로 돌아 오는 방법

+0

프로그램이 종료되지 않는 것처럼 보입니다. Matlab에서 실행 (컴파일되지 않음)하면 프로그램이 명령 창으로 돌아 옵니까? – Hoki

+0

예 ..................... – Lupocci

+0

또한 m- 파일의 마지막 줄에 disp ('Plotting has successfully successfully!') 줄을 추가했습니다. 표시되지만 아무 것도 표시되지 않습니다 (도스 창을 닫지 않거나 닫지 않을 경우) – Lupocci

답변

2

2 scenarii 있습니다

프로그램이 종료 될 때까지 DOS 창에서 실행하여 MATLAB 실행 파일의 DOS 창을 다시 제어를하지 않습니다. 프로그램이 matlab 수치 (플롯, 서핑 등)를 생성하면 모든 수치가 닫힐 때까지 프로그램이 콘솔로 돌아 가지 않습니다.

단순한 플롯의 경우 낭비라고 생각할 수도 있지만 결국에는 코드가 많은 진화 된 GUI가 될 수 있습니다. 또는 심지어 closeRequestFcn의 간단한 그림. 따라서 Matlab 용어로 프로그램 일 수도 있습니다.은 그림이 열리는 한 실행하는 명령을 가지고 있기 때문에 더 이상 할 일이 없을 때까지 돌아 가지 않습니다.

실행 파일을 두 번 클릭하면 프로그램에서 열리는 DOS 찾고있는 콘솔도 똑같은 동작을합니다. 프로그램이 반환 될 때까지 사라지지 않을 것입니다 (관련있는 경우 모든 인물이 닫힐 때까지).

리눅스 버전에 대해서는 잘 모르겠지만 Windows에서 실행중인 경우 그래픽 응용 프로그램 용 DOS보고 콘솔을 표시하지 않을 수있는 방법이 있습니다. mcc 옵션에서 -e 스위치를 확인하십시오. 이 스위치는 실행 파일을 두 번 클릭해도 DOS 콘솔이 열리지 않는 방식으로 프로그램을 컴파일합니다.

그래서 내가 추천, 요약하기 : 당신의 프로그램이 '명령 줄' 유형 (콘솔에서 입력을 받아 같은 값을 반환 함수)입니다

  • 합니다. => (당신이 창을 즉시 프로그램이 종료로 사라지는하지 않습니다.) 보통 옵션으로 컴파일하고 DOS 창에서 실행

  • 당신의 프로그램이 GUI를 또는 간단한 플로팅 기능의 경우, 콘솔 상호 작용이 필요하지 않은 경우 -e 스위치로 컴파일하고 .exe 파일을 두 번 클릭하여 실행하십시오. 경우에 당신은 -e 스위치를 사용하는 것이

노트, 로그 파일에 잠재적 인 출력을하는 것이 좋습니다. 자세한 내용은 mcc 설명서를 참조하십시오.


당신이 정말로 DOS 콘솔과 일부 그래픽 출력이 필요한 경우, 프로그램은 다음 구문을 사용하여 명령 창을 형성 실행 편집 :

start /b YourProgram 

이 배경 "에서 프로그램을 시작합니다 모드 "(사용 YourProgram & 리눅스 터미널에서).이 콘솔 창에서 무엇이든 할 수 있으며 matlab 실행 파일의 출력도 볼 수 있습니다.

프로그램의 출력이 간단한 dos 프롬프트에 추가되고 사용자가 제어 권한이 없다고 생각할 수 있기 때문에 혼란 스러울 수 있지만 명령을 입력하면 제대로 작동합니다. 이 방법으로 많은 프로그램을 시작하고 콘솔에서 제어를 유지할 수도 있지만 모든 출력이 동일한 창에 표시되므로 차별화하기 어려울 수 있습니다.

+0

좋은 답변입니다. 나는 -e 스위치에 대해 알고 있었지만, 내가 원하는 것은 아니라고, 나는 화면에 출력을 가진 dos 콘솔을보고 싶다. (나는 disp 명령을 많이 사용한다.) 그러나 그림을 계속 열어두기를 원한다.하지만 여전히 끝낸다. 당신은 그림의 핸들을 풀어서 열린 상태로두고 실행을 되돌릴 수있는 방법이 있다고 생각합니까? 나는. 나는 도스 창을 닫고 그림을 열고 싶다. 감사합니다. – Lupocci

+2

@Alberto, 답변을 완료했습니다.) – Hoki