我正在开发一个医疗机器人项目,它捕获一系列图像,然后在MATLAB中对它们进行一些处理。由于其他一些事情必须在MATLAB之外完成,我使用另一种语言进行整体控制,并使用控制台命令触发其他部分。
我有一个带有单个函数的.m文件,该文件将文件路径带到图像所在的目录,并进行所有MATLAB处理。如何从命令行调用它?我在这里看到了其他一些答案中讨论的matlab -r "function(input)"
,但它对我不起作用(我在开放的paren中遇到语法错误)。更具体地说,我得到:matlab: eval: line 1690: syntax error near unexpected token '('
。
我见过一些人说这必须通过调用一个shell脚本(我不知道怎么写)来完成,但是其他一些人说如果没有这个可行,那么有人可以澄清吗?
此外,假设我只是拙劣的matlab -r
语法,MATLAB如何知道在哪里找到.m文件?它是否需要在我正在运行命令的任何目录中?
答案 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
从命令行执行此脚本。在尝试运行脚本之前,请确保该脚本具有执行权限;)