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
(或"impath='$imagepath';impath2='$imagepath2'")
matlab程序: