编写一个bash脚本来在UNIX中运行matlab程序?

时间:2013-07-27 05:43:01

标签: bash matlab shell unix

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

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

如果你想写它,那就好了。我所要求的只是让某人指引我到我应该注意的地方。

谢谢

2 个答案:

答案 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包含图像列表
  • 一个周期
  • 命令,读取图像的内容
  • 一个变量(称之为“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目录中的prj个文件

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

谷歌的“bash教程”。