a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#調用Matlab生成的dll方法的詳細說明

2020-01-24 03:10:32
字體:
來源:轉載
供稿:網友

  其實整個過程比較簡單,但是需要心細一點。

  需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安裝一個MATLAB Compiler Runtime,這個文件(MCRInstall.exe)在安裝完MATLAB之后就會在安裝文件夾下存在,需要搜索一下(因為不同版本的MATLAB可能存放位置不同),把它安裝一下就OK了。

  接下來在MATLAB中寫一個m文件,當然是一個函數啦。然后在matlab命令行下運行deploytool,在圖形界面里選.net組件,然后進入一個工程目錄的界面,新建工程,工程的名字就是.net組件的名字(例如sinfit),在其下面的目錄表示.net類名(例如sinfit),在類名上點右鍵"Add File...",把Matlab的.m函數文件(例如sinfit.m)選進去。最后進行編譯(Build the project),生成的目錄下有以工程名命名的dll文件(例如sinfit.dll)。OK,dll生成好了。

  接下來打開VS,導入兩個dll,一個前面生成的那個dll,一個是<matlabroot>/dotnetbuilder/bin/win32/v2.0/mwarray.dll(如果找不到就搜一下)。然后在工程里加入下面的引用:

  using MathWorks.MATLAB.NET.Arrays;
  using MathWorks.MATLAB.NET.Utility;
  using sinfit;

  OK,可以用了,用法是實例化一個sinfit的對象,然后調用里面的matlab函數,不過有一個問題需要注意的是,matlab的輸入和輸出數據都是矩陣,很特殊,在.net中叫做MWArray,它還有一個子類叫做MWNumericArray,它們的使用方法簡單說明如下:

  創建一個MWNumericArray對象的方法:MWNumericArray para = new MWNumericArray(MWArrayComplexity.Real, 4, 2);這樣就創建了一個矩陣,如果要把它映射給一個double型的二維數組,則需要創建數組double[,] temp = new double[2, 4];這個地方就要注意了,正好反過來。然后如果是MWNumericArray賦給double[,]的話可以采用MWNumericArray的ToArray方法,如double[,] paras = (double[,])para.ToArray(MWArrayComponent.Real);其中para是MWNumericArray對象。如果是double[,]賦給MWNumericArray的話,那就直接賦值就OK了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久这里只有精品首页 | 97品白浆高清久久久久久 | 中文字幕一区二区三区在线视频 | 99精品久久99久久久久 | 日韩中文视频 | 欧美人成在线观看 | 九九亚洲 | 最新国产在线视频 | 久久一区二区三区四区 | 色黄网站 | 日韩av电影免费 | 精品黑人一区二区三区久久 | 亚洲色图欧美激情 | 日韩在线观看网站 | 国产一区二区三区色淫影院 | 波多野结衣 一区二区 | 久草在线资源福利站 | 免费一级片 | 免费一级欧美在线观看视频 | 中国一级特黄毛片大片 | 久久久久久亚洲 | 成人在线日韩 | 色8久久 | 男女网站在线观看 | 久热亚洲 | 精品日韩一区二区三区 | 成人精品一区二区三区中文字幕 | 一区二区中文字幕 | 蜜桃久久一区二区三区 | 亚洲精品视频免费看 | 91视频www| 国产精品99久久久久久大便 | 一级黄色影视 | 国产成人在线播放 | 久久成人精品 | 在线观看xxx | 91高清视频在线观看 | 免费在线日本 | 色婷婷av一区二区三区软件 | 欧美一区二区三区成人精品 | 国产日韩欧美一区 |