linux系統使用sh文件傳參數給matlab程序

 

linux系統下使用sh文件傳參數給matlab程序html

(1)編寫sh文件
程序如下面的行開始(必須在文件的第一行):
   #!/bin/sh

定義須要傳遞的參數,用雙引號引發,參數之間使用逗號或分號隔開node

【編輯好腳本後執行須要修改權限:chmod +x filename.sh,filename是sh文件的名字】

(2)舉例:sh文件傳遞文件夾路徑給matlab程序,matlab讀取圖片後將其轉爲灰度圖存儲。linux

路徑‘/home/sjxy/hello/image/’下的圖片。
hello.sh文件:
#!/bin/bash
imagepath='/home/sjxy/hello/image/'
/usr/local/MATLAB/R2014b/bin/matlab -nodesktop -nosplash -r "impath='$imagepath'",</home/sjxy/hello/imageread.m> /home/sjxy/hello/bb.out &
須要傳遞的圖片路徑爲imagepath,matlab中使用impath接收該路徑
修改hello.sh文件權限:chmod +x hello.sh
【/usr/local/MATLAB/R2014b/bin/matlab 是matlab的路徑】
【不啓動圖形界面運行matlab:matlab -nodesktop -nosplash】
【在命令行直接運行matlab須要使用-r選項:matlab -nodesktop -nosplash -r </path/filename.m> /path/bb.out &】   
   Matlab程序:                       
I=imread(fullfile(impath,'1.jpg'));  %-- load the image
G=rgb2gray(I);
imwrite(G,[impath,'gray.jpg']); %-- save gray image
運行hello.sh: ./hello.sh       [./表示在當前目錄下查找文件]
結果:
生成bb.out文件,指定路徑下存儲了灰度圖。

傳遞多個參數:bash

sh文件:post

#!/bin/bashspa

imagepath='/home/sjxy/hello/image/'命令行

imagepath2='/home/sjxy/hello/im/'3d

 

/usr/local/MATLAB/R2014b/bin/matlab-nodesktop -nosplash -r  "impath='$imagepath',impath2='$imagepath2'",</home/sjxy/hello/imageread.m> /home/sjxy/hello/bb.out &
(或"impath='$imagepath';impath2='$imagepath2'")
matlab程序:
相關文章
相關標籤/搜索