我没有bash脚本背景。我知道unix命令行的基础知识。
我有一个matlab脚本,它将矩阵图像作为输入。我在文件中有一堆图像。我需要bash脚本来调用matlab程序并将文件中的每个图像作为输入逐个输入到程序中。
如果你想写它,那就好了。我所要求的只是让某人指引我到我应该注意的地方。
谢谢
答案 0 :(得分:5)
假设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 :(得分:1)
你需要
list_images
,或filename
包含图像列表类似的东西:
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目录中的prj
个文件
find . -maxdepth 0 -name \*.prj -print0 | while IFS= read -r -d '' image_name
do
matlab_command "$image_name" > "$image_name.output"
done
谷歌的“bash教程”。