3

我没有 bash 脚本背景。我知道unix命令行的基础知识。

我有一个 matlab 脚本,它以矩阵图像作为输入。我在一个文件中有一堆图像。我需要 bash 脚本来调用 matlab 程序,并将文件中的每一个图像作为输入一个一个地输入到程序中。

如果你想写它,那就太好了。我所要求的只是有人指导我确切地了解我应该研究的内容。

谢谢

4

2 回答 2

5

假设该matlab命令在您的路径中(有关更多信息,请参阅文档

假设您只想获取所有 BMP(您没有指定文件类型),您可以使用一个简单的 bash 循环:

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

、和确保不触发 GUI,并-nosplash指示matlab 运行命令。最后的确保matlab在运行后退出。-nodisplay-nojvm-r,quit()

于 2013-07-29T05:00:14.917 回答
1

你需要

  • 一个命令生成图像列表,每行一个。将其称为list_images,或filename包含图像列表的内容
  • 一个周期
  • 命令,读取图像的内容
  • 一个变量(称为“image_name”)
  • 运行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,发布您输入的示例。

编辑在当前目录中查找prj文件

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

谷歌“bash 教程”。

于 2013-07-27T06:30:46.977 回答