2013-07-27 51 views
2

我沒有bash腳本背景。我知道unix命令行的基礎知識。編寫一個bash腳本在UNIX中運行一個matlab程序?

我有一個matlab腳本,將矩陣圖像作爲輸入。我在一個文件中有一堆圖像。我需要bash腳本來調用matlab程序,並將文件中的每個圖像作爲輸入一個接一個地輸入到程序中。

如果你想寫它,那就太好了。我所要求的只是讓某人指導我完成我應該看到的內容。

感謝

回答

4

假設matlab命令在您的路徑(更多信息,See the documentation

假如你只是想獲得的所有BMP的(沒有指定文件類型),你可以使用一個簡單的bash循環:

for f in *.BMP; do 
    matlab -nosplash -nodisplay -nojvm -r "my_command('$f'),quit()" 
done 

-nosplash-nodisplay,並-nojvm確保GUI不會被觸發,而-r指示MATLAB運行命令。最後的,quit()確保matlab在運行後退出。

1

你需要

  • 一個命令是什麼產生的圖像每行一個列表。稱其爲list_images,或filename什麼包含圖像
  • 一個週期
  • 命令的列表,什麼讀取圖像
  • 一個變量(稱其爲「IMAGE_NAME」)
  • comamnd到MATLAB運行
  • 的地方,這裏的輸出應該去

喜歡的東西:

list_images | while read image_name 
do 
    matlab_command "$image_name" > "$image_name.output" 
done 

或更好

while read image_name 
do 
    matlab_command "$image_name" > "$image_name.output" 
done < filename_with_images.txt 

沒有真正明白你的意思與have amatrix images in a file,發表您輸入的一個例子。

在CURENT目錄

find . -maxdepth 0 -name \*.prj -print0 | while IFS= read -r -d '' image_name 
do 
    matlab_command "$image_name" > "$image_name.output" 
done 

谷歌 「的bash教程」 發現prj文件編輯

+0

對不起,不明確。輸入文件爲.prj格式。我把它們全部存儲在一個目錄中。我真的只需要腳本將文件名作爲參數傳遞給我的matlab函數。在上面的回答中,我不瞭解你從目錄中實際讀取文件名的位置。 –

+0

請參閱編輯 - 如何查找'prj'文件... – jm666

相關問題