C#調(diào)用Matlab生成的dll方法的詳細(xì)說(shuō)明
其實(shí)整個(gè)過(guò)程比較簡(jiǎn)單,但是需要心細(xì)一點(diǎn)。
需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安裝一個(gè)MATLAB Compiler Runtime,這個(gè)文件(MCRInstall.exe)在安裝完MATLAB之后就會(huì)在安裝文件夾下存在,需要搜索一下(因?yàn)椴煌姹镜腗ATLAB可能存放位置不同),把它安裝一下就OK了。
接下來(lái)在MATLAB中寫(xiě)一個(gè)m文件,當(dāng)然是一個(gè)函數(shù)啦。然后在matlab命令行下運(yùn)行deploytool,在圖形界面里選.net組件,然后進(jìn)入一個(gè)工程目錄的界面,新建工程,工程的名字就是.net組件的名字(例如sinfit),在其下面的目錄表示.net類名(例如sinfit),在類名上點(diǎn)右鍵"Add File...",把Matlab的.m函數(shù)文件(例如sinfit.m)選進(jìn)去。最后進(jìn)行編譯(Build the project),生成的目錄下有以工程名命名的dll文件(例如sinfit.dll)。OK,dll生成好了。
接下來(lái)打開(kāi)VS,導(dǎo)入兩個(gè)dll,一個(gè)前面生成的那個(gè)dll,一個(gè)是<matlabroot>/dotnetbuilder/bin/win32/v2.0/mwarray.dll(如果找不到就搜一下)。然后在工程里加入下面的引用:
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using sinfit;
OK,可以用了,用法是實(shí)例化一個(gè)sinfit的對(duì)象,然后調(diào)用里面的matlab函數(shù),不過(guò)有一個(gè)問(wèn)題需要注意的是,matlab的輸入和輸出數(shù)據(jù)都是矩陣,很特殊,在.net中叫做MWArray,它還有一個(gè)子類叫做MWNumericArray,它們的使用方法簡(jiǎn)單說(shuō)明如下:
創(chuàng)建一個(gè)MWNumericArray對(duì)象的方法:MWNumericArray para = new MWNumericArray(MWArrayComplexity.Real, 4, 2);這樣就創(chuàng)建了一個(gè)矩陣,如果要把它映射給一個(gè)double型的二維數(shù)組,則需要?jiǎng)?chuàng)建數(shù)組double[,] temp = new double[2, 4];這個(gè)地方就要注意了,正好反過(guò)來(lái)。然后如果是MWNumericArray賦給double[,]的話可以采用MWNumericArray的ToArray方法,如double[,] paras = (double[,])para.ToArray(MWArrayComponent.Real);其中para是MWNumericArray對(duì)象。如果是double[,]賦給MWNumericArray的話,那就直接賦值就OK了。
相關(guān)文章
silverlight實(shí)現(xiàn)圖片局部放大效果的方法
這篇文章主要介紹了silverlight實(shí)現(xiàn)圖片局部放大效果的方法,結(jié)合實(shí)例形式分析了silverlight針對(duì)圖片屬性的相關(guān)操作技巧,需要的朋友可以參考下2017-03-03
windows下C#定時(shí)管理器框架Task.MainForm詳解
這篇文章主要為大家詳細(xì)介紹了windows下C#定時(shí)管理器框架Task.MainForm的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
C#調(diào)用mmpeg進(jìn)行各種視頻轉(zhuǎn)換的類實(shí)例
這篇文章主要介紹了C#調(diào)用mmpeg進(jìn)行各種視頻轉(zhuǎn)換的類,實(shí)例分析了C#調(diào)用mmpeg操作視頻文件的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
使用WPF實(shí)現(xiàn)窗口抖動(dòng)動(dòng)畫(huà)效果
在用戶界面設(shè)計(jì)中,適當(dāng)?shù)膭?dòng)畫(huà)反饋可以提升用戶體驗(yàn),尤其是在錯(cuò)誤提示、操作失敗等場(chǎng)景下,窗口抖動(dòng)作為一種常見(jiàn)且直觀的視覺(jué)反饋方式,常用于提醒用戶注意當(dāng)前狀態(tài),本文將詳細(xì)介紹如何使用 WPF 動(dòng)畫(huà)機(jī)制 實(shí)現(xiàn)一個(gè)通用的 窗口抖動(dòng)幫助類,需要的朋友可以參考下2025-05-05
C#創(chuàng)建SQLite控制臺(tái)應(yīng)用程序詳解
這篇文章主要為大家詳細(xì)介紹了C#創(chuàng)建SQLite控制臺(tái)應(yīng)用程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

