2014-03-30 107 views
1

我想知道哪些編程語言可以被matlab調用。哪些編程語言可以通過matlab調用?

例如我很安靜,確定matlab可以使用C函數,也許可以使用java。

我需要這個東西的工業項目,所以我需要的東西,運作良好。 例如我已經找到一些教程來調用python函數在matlab中,但他們看起來不是很好,穩定的解決方案。

我不是該領域的專家,我的matlab知識非常有限。所以請耐心等待答案。

該項目與機器學習相關,該軟件可能會在羣集上運行。

根據這篇文章編輯Embedding Python in MATLAB似乎有使用python導入numpy時出現問題。 在這個環境中使用python的唯一原因是numpy庫。沒有這個,對我來說幾乎是無用的。

你認爲我會遇到類似的問題,使用Java或C調用一些數學圖書館?

+0

Matlab的可調用C,C++和Java。 – otherDewi

+0

@otherDewi - 它也可以調用.Net程序集(C#/ VB) – bavaza

回答

2

大多數接口都在這裏列出:

http://www.mathworks.de/de/help/matlab/external-interfaces.html

對於Python我看到不同的解決方案:

  • COM在Windows平臺上。這需要註冊一個應用程序,檢查這是否可行並且允許在羣集上。
  • XMLRPC或SOAP。您可能需要在Matlab中使用Java-Classes,但正如您已經意識到的那樣,這非常簡單。驗證羣集有可用的Java VM,許多運行沒有Java的matlab。
  • 您可以嵌入Python代碼轉換成C,它允許你寫一個運行C代碼MEX功能:http://docs.python.org/2/extending/embedding.html
  • 使用命令行界面蟒蛇。

除了記錄的限制,我沒有看到這些解決方案的任何問題。如果您熟悉C或Matlab,我會選擇第二個或第三個選項。這允許你編寫一個包裝來訪問python,並具有matlab的基礎知識。

1

有實現這種兩種主要方法:

  1. 寫MEX功能,這基本上是C/C++或Fortran的方法,該方法使用特定的Matlab的API。然後,您可以像使用M語言文件編寫的任何函數一樣調用這些方法。這被描述爲here
  2. 調用用Java,.Net,C/C++和COM服務器編寫的外部庫。這被描述爲here

這兩種方法都需要很好地理解你在做什麼,儘管我認爲編寫MEX函數比引用現有庫要困難得多。

相關問題