2009-01-12 61 views
20

在互聯網上窺視之後,它看起來可以在C#和Matlab之間進行互操作。我想知道是否有人有成功,他們做了什麼。如果可能以某種方式將其關閉而不使用COM。謝謝你的時間。Matlab與C#之間的互操作#

回答

10

是的,很有可能。儘管我最終使用了C接口,並使用混合模式DLL調用了該接口(並且讓C#可以調用該接口......但那是因爲我還與其他一些C代碼進行了接口連接)。這很直接。在要運行程序的計算機上,您需要安裝Matlab Runtime MCRInstaller.exe。

編輯:去除破損的鏈接

0

如果你願意花錢,這可能是你所需要的:

http://www.mathworks.com/products/netbuilder/

它可以產生Matlab代碼封裝,允許它被稱爲來自.NET和COM。

+0

看起來可行,但我是一個吝嗇的小氣的學生。 – smaclell 2009-01-12 03:51:25

+1

但要小心。沒有值得他的鹽的饒舌歌手會喜歡這樣叫,或者當他在一首歌曲中間。 – 2009-01-12 03:55:03

20

藉助MATLAB R2009a版本開始,.NET對象可以從MATLAB訪問:

http://www.mathworks.com/help/techdoc/matlab_external/brpb5k6.html

在舊版本的MATLAB的,有可能使用CCW從MATLAB訪問.NET對象:

http://www.mathworks.com/support/solutions/data/1-5U8HND.html?solution=1-5U8HND

和.NET Matlab引擎:

http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/matlab_external/f135590.html#f135616

您也可以使用MATLAB Builder NE將m代碼包裝到.NET程序集中。

http://www.mathworks.com/products/netbuilder/

3

是的,我成功地做到這一點,它主要是無痛的。

您必須編譯.NET的MATLAB代碼(如前面的解釋所述),運行MCR安裝程序,參考MWArray.dll和.NET項目中的編譯代碼dll,然後關閉。

唯一的煩惱是鑄造(有時多件!)那你的界面力(中投運營商使用顯式)

0

在R2009a發佈前,你可以從MATLAB調用.NET程序集。

0

我不確定這對你有多大影響,但試試看matlab可執行文件或MEX基本上,用C或FORTRAN編寫程序非常簡單,包括一些庫和函數,然後你可以使用你在MATLAB

C或FORTRAN功能