2013-02-15 106 views
1

我有一個帶已知接口的Matlab mex文件,這個mex文件是由其他人提供的,所以我無法訪問代碼。有沒有什麼有效的方法來調用C++中的mex函數?謝謝!在C++中調用matlab mex文件

回答

0
  1. mexext從MATLAB調用告訴你允許兼容的系統。 (32位或64位)

  2. mex編譯的可執行文件不能從C++環境中調用AFAIK。他們使用Matlab命令窗口/ Matlab函數。

例:

系統( 「mymex」)會給我的錯誤是:

'mymex' is not recognized as an internal or external command, 
operable program or batch file. 

系統( 「ttt.mexw32」);

will popup a window asking me to select a program to open that file with. 

我也有我自己的懷疑,在一個系統上編譯.mexw32/.mexw64的可以在其他工作如擴展名爲.exe的(可執行文件)。原因可能是不兼容的Matlab發佈版本等(不知道太多,請檢查一下)

雖然你可以很容易地使用他們的mex可執行文件。

0

您是否考慮過使用mexCallMatlab
您可以將mex文件作爲標準的matlab函數,並使用mexCallMatlab從C++中調用它。

0

mex文件只是動態庫。您可以使用LoadLibrary加載它們並使用GetProcAddress調用它們的功能。 (或等效於* nix,dlopendlsym)。

設置參數以與MatLab通過的參數相兼容會有點痛苦,但不是特別困難。如果你有自己的經驗編寫mex函數,這將有所幫助,所以你熟悉調用約定。

+0

是否需要安裝Matlab才能使用此功能並從C++調用mex? – 2016-02-04 08:09:01