2012-08-03 2 views
3

클러스터에서 matlab 스크립트 (ga_opt_main.m)를 실행하려고합니다. 기본적으로 셸 스크립트 인 작업 제출 파일을 작성해야합니다. 그러나 필자는 쉘 스크립트를 작성한 적이 없으며 이것은 내가 작성한 것입니다.MATLAB을 실행하기위한 Bash 스크립트 오류

#!/bin/bash 
    #PBS -q *queuename* 
    #PBS -l nodes=1:ppn=20 
    #PBS -l walltime=02:00:00 
    #PBS -N ga_opt_main 

    module load matlab/R2011b 
    module list 

    unset DISPLAY 
    matlab -nodisplay -nodesktop -r *directory path/ga_opt_main.m* 

MATLAB이 백그라운드에서 열리지 만 작업이 실행되지 않습니다. 대신 오류 파일이 표시됩니다.

bash: -c: line 0: syntax error in conditional expression 
    bash: -c: line 0: syntax error near `fraction' 

이 문제가 발생하는 이유와 피할 수있는 방법에 대한 아이디어가 있으십니까? 감사합니다.

matlab -nodesktop -nodisplay -r "addpath('/directory/path'); ga_opt_main; quit;" 
ga_opt_main.m 스크립트 파일의 이름입니다

'/directory/path'을 디렉토리 곳을 :

+1

이전에는 PBS를 사용한 적이 없지만 별표 사이에있는 단어가 다른 것으로 바꿔야하는 자리 표시 자 텍스트 인 것처럼 보입니다. 예를 들어,'#PBS -q * queuename *'은 약간 생기있어 보입니다 .... –

+0

@CypressFrankenfeld :'-r "과"... 사이에 전달되는 모든 것은 올바른 명령이어야합니다. IDE. 스크립트를 실행하려면 파일과 동일한 디렉토리를 탐색하거나 폴더를'path'에 추가 한 다음 이름으로 호출하십시오 (또는 내가 나타낸 것처럼 RUN 함수를 사용하십시오). – Amro

+0

@Amro, 당신은 완전합니다. 나는 그 게시물을 삭제하고 대답을 참조 할 것입니다. –

답변

2

내가 전에 PBS를 사용한 적이 있지만, 쉘에서 MATLAB 스크립트를 실행하려면 다음을 수행하십시오 상주합니다. 이 스크립트에 대한 MATLAB 경로의 다른 종속성도 있어야합니다.

matlab ... -r "run('/directory/path/ga_opt_main.m'); quit;" 
+0

고마워요. 예, 디렉토리 경로 명령에 오류가 있습니다. 그것을 고쳤습니다. 다시 한 번 감사드립니다! –

1
############################### 
#!/bin/sh 
#PBS -l nodes=1 
#PBS -l walltime=2:0:0 
#PBS -j oe 
#PBS -o localhost:/dev/null 
#PBS -d /your/working/directory 


    cd $PBS_O_WORKDIR 
    matlab -nodisplay -nodesktop -nojvm -nosplash -r "your_matlab_function" 

내가 실제 MATLAB 스크립트/기능에 addpath(genpath('~/your/script's/home'));를 추가 :

유사한 무언가를 편리한 RUN 기능도 있습니다. 또한 ".m"을 matlab 파일 이름에 추가하지 마십시오.