저는 Ubuntu에 Matlab 2014를 설치했습니다. 내 문제 : Matlab의 다른 프로그램 인 Quantum Espresso에 대한 여러 입력 파일을 빌드합니다. 이제 Matlab 커맨드 라인을 사용하여 Quantum Espresso에이 파일들을 전달해야합니다. 이제 리눅스 터미널을 사용하여이 작업을 수행 할 수 있다는 것을 알았지 만 나의 문제를 해결하는 나의 방법은 나의 유일한 옵션이 'matlab에서 Quantum Espresso를 호출하는 것'이라는 요점에 도달했습니다. 실제로 한 번만 전화하면 쉽습니다.루프에서 matlab에서 외부 프로그램 호출
! installation/folder/espresso-5.3.0/bin/pw.x <inputfile> outputfile
문제는 몇 가지 입력 파일 이름이 1name.in 1name.in ...입니다. 따라서이 반복 호출은 루프에서 수행되어야합니다. 그러나 어떻게?
시도 : 파일을 루핑하기위한 쉘 스크립트. 나는 그 여분의 것을 더했다! 스크립트의 각 줄에 있지만 작동하지 않습니다. 내 입력 파일의 수에
for i = 1:N
prefix = int2str(i);
fuloutname = [prefix 'name' '.' 'out'];
fulinname = [prefix 'name' '.' 'in'];
! adress/espresso-5.3.0/bin/pw.x <fulinname> fuloutname ;
end
에서 'N': 나는이 같은 루프를 작성했습니다. 분명히 이것을 실행한다는 것은 1name.in이 아닌 'fulinname'이라는 이름의 파일을 전달하고 'fuloutname'이라는 출력 파일을 생성한다는 것을 의미합니다.
일반적으로 루프에서 다양한 파일을로드 할뿐만 아니라 작동하지 않았다
도와주세요.
' command1 = '$ 1 * .in''의 값을 ... 그리고 나서'unix (command1)'? '/ bin/bash : -c : 1 행 : 문법 오류 : 예기치 않은 파일 끝 ' – obchardon
@obchardon 내가 그것을 사용해야하는'unix' 기능,'mycommand = 'mycall''와'유닉스 (mycommand)를'사용해야 –
답에서 그것을 옮겼습니다 - @ fb.researcher - matlab'!'에 문자열을 더한 것입니다. 나는 정말로 @obchardon이 질문에 정확하게 대답했다고 믿는다. – bdecaf