shell傳參給matlab問題解決辦法

以前須要經過shell腳本傳參給matlab程序,可是遇到一些問題,現將我遇到的問題分享出來,給遇到一樣問題的人一些借鑑。node

shell部分腳本Execl.sh:python

/usr/bin/python /home/shk/IPMProduct.py $1
cd /home/shk/ && /usr/local/MATLAB/R2015b/bin/matlab -nodesktop -nosplash -r "sDate='$1';test;quit"shell

ps:app

1./usr/bin/python /home/shk/IPMProduct.py $1。爲調用Python程序,IPMProduct.py爲python程序名,$1爲shell腳本接收的第一個參數ui

2.cd /home/shk/ && /usr/local/MATLAB/R2015b/bin/matlab -nodesktop -nosplash -r "sDate='$1';test;quit"。爲調用matlab程序,test爲matlab程序名,sDate='$1'爲傳入matlab的字符型參數,matlab中用一樣的變量sDate接收。quit爲執行完test程序後退出matlab環境。-nodesktop -nosplash -r這幾個參數見上一篇文檔說明。文檔

 

matlab程序部分代碼 test.m:直接使用sDate變量便可it

%clc;
%close all;
%clear;
filedir=['/gds/',sDate,'/'];
filenameT = dir(fullfile(filedir,'*_030KM_MS_UDS.HDF'));
filenameArr = char({filenameT.name}) 
 
fileoutdir=['/gds/DATA/',sDate,'/'];
[fileoutnameT]=mapplot(filedir,filenameArr,F107,fileoutdir);
 
題外話:以前因爲matlab中clc; close all;clear;沒有註釋掉,每次傳進來的參數值都被清理掉了,sDate沒有獲取數值,致使MATLAB程序錯誤。註釋掉以後程序正常運行。真的是,這個問題困擾了我很久,一直覺得是shell腳本中傳參給matlab的程序沒寫對,查了好多資料,後來才發現是由於進入matla後參數都被清理掉了。
相關文章
相關標籤/搜索