2013-06-28 103 views
0

我想運行一個特定的Python腳本,通過Ubuntu 12.04命令終端調用MATLAB。該腳本有這樣一行:通過Python調用MATLAB,但通過Linux命令終端

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

,但它與ReadFates最後一部分將返回一個語法錯誤..我不知道如何解決它。

我知道有一種使用matlab python bridge的方法,但我必須將我的matlab文件轉換爲函數。

謝謝!

+1

'使用os.system( 'MATLAB -nojvm -nodisplay -nosplash -r 「ReadFates5mm;退出」')'?或者正確地轉義報價。 – anishsane

+0

明白了!它對「vs vs」有什麼不同? – alvarezcl

+0

添加了解釋作爲答案。 – anishsane

回答

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