2012-09-03 73 views
1

我想運行一些Matlab腳本。儘管如此,我們沒有Matlab許可證,所以需要從Matlab轉換爲R語言。不幸的是,我在Matlab中是全新的,但在R中不是。是否有可能使用R讀取Matlab腳本,或者有沒有簡單的方法來翻譯R中的Matlab腳本?如何轉換R中的Matlab腳本

+7

我的第一個嘗試是看看腳本是否可以在[octave](http://www.gnu.org/software/octave/)中使用,這是一個免費的Matlab開源實現。 –

+2

爲什麼不嘗試[Octave](http://www.gnu.org/software/octave/),它在大多數情況下是免費的,在句法上與Matlab類似。在某些情況下存在差異,但八度幫助將能夠告訴您差異。 – psiphi75

+2

Scilab呢?有一個Matlab的Scilab轉換器:http://help.scilab.org/docs/5.3.0/en_US/About_M2SCI_tools.html – djhurio

回答

11

從一種語言到另一種語言的重寫可能是一個艱辛的過程,尤其是因爲您必須非常小心,兩組代碼的結果是相同的。我看到大致四種方法:

  • 文摘腳本的目標,拋開MATLAB代碼,以及R中改寫
  • 嘗試和模仿R中
  • 運行在八度的MATLAB代碼的MATLAB代碼,和其中R
  • 接口運行該代碼在八度完全

這些是大致的工作量的順序。如果你只是想讓Matlab代碼正常工作,那麼一定要使用Octave,它應該用最少的修改來運行代碼。如果你想將代碼轉換爲R,並繼續在R中開發,我會選擇第一個選項。通過這種方式,您可以利用R的實際強度,因爲R非常不同(link with info,comparison R and matlab)。但它需要最多的時間。即使你在R中實現,我也會建議讓Octave運行的代碼能夠看到R中的結果是否符合Matlab代碼。

+0

@EleonoraLusito而不是在你的系統上安裝Octave,你可以快速測試它是否可以在http://hughesbennett.net/Octave上在線工作。這不完全相同,但可能會給你一個指示,並且更快。如果您的代碼由於某些不兼容而無法在Octave中運行,請將其報告給http://avens.gnu.org/bugs/?func=additem&group=octave中的Octave項目,因爲這些被視爲錯誤。 – carandraug