2012-12-18 177 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

相關問題