2012-12-18 118 views
3

我正在研究一个医疗机器人项目,该项目捕获一系列图像,然后在MATLAB中对它们进行一些处理。由于许多其他事情必须在MATLAB之外完成,因此我使用另一种语言进行总体控制,并使用控制台命令触发其他部分。如何调用从命令行输入文本的Matlab函数?

我有一个单一的.m文件,其中包含一个单独的函数,它将文件路径带入图像所在的目录,并执行所有MATLAB处理。我怎样才能从命令行调用这个?我已经在这里看到matlab -r "function(input)"在其他一些答案中讨论过,但它不适用于我(我在开放式文件中出现语法错误)。更具体地说,我得到:matlab: eval: line 1690: syntax error near unexpected token '('

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

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

回答

3

我猜你正在尝试:

matlab -r test('hi') 

并获得...

bash: syntax error near unexpected token `(' 

或类似的东西?

答:您需要使用" "function(input)左右,即:

matlab -r "test('hi')" 

这在我目前与输入字符串'hi'目录运行test.m

为此在名为runmatlabcommand.sh shell脚本,在说bash,你可以打开一个文件,并写入:

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

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

+0

啊,实际上是错误的错字。我正在做'matlab -r“函数(输入)”',用你所描述的引号。我需要围绕输入的撇号吗? –

+0

@活力的圣人只有当“输入”是一个字符串。 – dinkelk

+0

@Oblivious Sage你确定你的脚本在你的当前目录中吗? – dinkelk

相关问题