如何调用从命令行输入文本的Matlab函数?

时间:2012-12-18 06:00:39

标签: macos matlab shell command-line

我正在开发一个医疗机器人项目,它捕获一系列图像,然后在MATLAB中对它们进行一些处理。由于其他一些事情必须在MATLAB之外完成,我使用另一种语言进行整体控制,并使用控制台命令触发其他部分。

我有一个带有单个函数的.m文件,该文件将文件路径带到图像所在的目录,并进行所有MATLAB处理。如何从命令行调用它?我在这里看到了其他一些答案中讨论的matlab -r "function(input)",但它对我不起作用(我在开放的paren中遇到语法错误)。更具体地说,我得到:matlab: eval: line 1690: syntax error near unexpected token '('

我见过一些人说这必须通过调用一个shell脚本(我不知道怎么写)来完成,但是其他一些人说如果没有这个可行,那么有人可以澄清吗?

此外,假设我只是拙劣的matlab -r语法,MATLAB如何知道在哪里找到.m文件?它是否需要在我正在运行命令的任何目录中?

1 个答案:

答案 0 :(得分:4)

我猜你在尝试:

matlab -r test('hi')

得到......

bash: syntax error near unexpected token `('

或类似的东西?

答案:您需要在" "周围使用function(input),即:

matlab -r "test('hi')"

这在我当前目录中使用输入字符串test.m运行'hi'

要在名为runmatlabcommand.sh的shell脚本中执行此操作,例如bash,您只需打开一个文件并写入:

#!/bin/bash
matlab -r "test('hi')"

然后键入./runmatlabcommand.sh从命令行执行此脚本。在尝试运行脚本之前,请确保该脚本具有执行权限;)