通过Python调用MATLAB,但通过Linux命令终端

时间:2013-06-28 05:55:52

标签: python linux matlab shell scripting

我想运行一个通过Ubuntu 12.04命令终端调用MATLAB的Python脚本。该脚本有这一行:

os.system("matlab -nojvm -nodisplay -nosplash -r "ReadFates5mm;quit"")

但它在ReadFates的最后一部分返回语法错误..我不知道如何解决它。

我知道有一种使用matlab python桥的方法,但我必须将我的matlab文件转换为函数。

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要正确引用字符串。

尝试:

os.system('matlab -nojvm -nodisplay -nosplash -r "ReadFates5mm;quit"')
OR
os.system("matlab -nojvm -nodisplay -nosplash -r 'ReadFates5mm;quit'")

或者,您可以转义嵌套的双引号。

os.system("matlab -nojvm -nodisplay -nosplash -r \"ReadFates5mm;quit\"")

说明:

在您的代码中,

 os.system("matlab -nojvm -nodisplay -nosplash -r "ReadFates5mm;quit"")
           1                                      1'                22'

双重报价从标记1开始,在市场结束1'&引用始于2,结尾为2'。 基本上,您需要逃离"上的1'& 2,使用\"

或者,您可以使用其他引号字符'


有关详细信息,请搜索“字符串引号和转义字符”。

http://en.wikipedia.org/wiki/Escape_character#Programming_and_data_formats