2014-09-15 3 views
0

matlab을 통해 배치 파일 명령을 실행할 때 문제가 발생했습니다. 이 배치 파일에는 Adams에서 시뮬레이션을 실행하는 명령이 포함되어 있습니다. DOS 창에서 배치 파일을 직접 실행하면 제대로 작동합니다. 하지만 (명령 dos()을 사용하여) matlab을 사용하면 'Adams의 라이센스를 체크 아웃 할 수 없습니다'라는 오류 메시지가 나타납니다.dos()를 사용하여 배치 파일 실행

이것은 혼란 스럽습니다 : 라이센스가 틀리면 배치 파일을 DOS에서 직접 실행하거나 MATLAB이 실행하도록 요청해도 상관 없습니다. 또한 dos()을 사용하여 matlab을 통해 다른 DOS 명령을 실행하려고 시도했지만 제대로 작동했습니다.

문제가 무엇인지 아는 사람이 있습니까?

+0

* Adams * 란 무엇입니까? MATLAB을 사용하려고 할 때 라이센스를 사용할 수 있다는 것을 어떻게 알 수 있습니까? – Schorsch

+0

Adams는 시뮬레이션에 사용하는 소프트웨어입니다. 배치 파일을 사용하여 자동으로 시뮬레이션을 시작할 수 있습니다. 시뮬레이션이 작동하면 라이센스가 정상임을 의미합니다. 내 경우 실제로 라이센스를 사용할 수 있습니다. 그렇지 않으면 DOS에서 배치 파일을 실행할 때 작동하지 않게 할 것입니다. – open0121

+0

이것이 현재 디렉토리가 Adams의 디렉토리가 아닌 문제 일 수 있습니까? 배치 파일의 상단에'cd [whereverAdamsIs]'를 추가하십시오. – Pokechu22

답변

0

이러한 문제는 일반적으로 MATLAB에서 변경되거나 지워지는 일부 환경 변수로 인해 발생합니다. 리눅스와 Mac OS X에서 비슷한 경험을했습니다. system 또는 unix을 사용할 때 혼란을 야기합니다.

유닉스 계열 시스템에서 MATLAB은 이러한 모든 상황이 발생하는 쉘 스크립트에서 시작됩니다. 따라서 누락 된 변수를 홈 디렉토리의 .matlab7rc.sh에 통합 할 수 있습니다 (후자는 MATLAB을 업그레이드 할 때 보존되므로 사용하기가 훨씬 쉽습니다). 나는 여기에 모든 유닉스의 세부 사항을 설명하지 않을 것이다. 대체 해결 방법은 system 명령 (예 : system('export variable=value ; ...'))을 발행 할 때 해당 변수를 명시 적으로 설정하는 것입니다. 꽤 많은 작업이지만 다른 컴퓨터에서 MATLAB 코드를 쉽게 사용할 수 있습니다.

Windows에서 필자는 해당 파일의 정확한 위치와 MATLAB이 유닉스에서와 아주 비슷한 방식으로 시작하는지에 대해 확실하지 않습니다. 그러나 존재한다면 MATLAB 문서에서 찾을 수 있습니다. 어쨌든, 여기에서도 대안이 수정되어야합니다.

먼저 필요한 시스템 변수 (예 : PATH 또는 Adams와 관련된 이름이있는 것)를 진단해야합니다. Windows에서 실행하려면 Windows 명령 프롬프트 (cmd.exe) 및 MATLAB 내에서 set을 실행하십시오. 출력이 다른 점은 문제의 가능한 용의자입니다. 단일 변수를 검사하려면 echo %variablename% 명령을 사용할 수 있습니다.

suspect 환경 변수가 누락되어 있고 value으로 설정해야한다고 가정합니다.

해결 방법은 ...을 원래 명령으로 바꾼 system('set suspect=value & ...')으로 MATLAB에서 명령을 실행하는 것입니다.

+0

대단히 감사합니다! 문제가 해결되었습니다! 컴퓨터 설정에서 Adams의 시스템 변수를 확인했습니다. 그리고 도스는 진정한 가치를 발견했지만 MATLAB은 다른 가치를 부여했습니다. 나는 그것을 MATLAB을 통해 바꿨고 이제는 작동합니다! 정말 고마워. :) – open0121