2013-07-27 53 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

相关问题