国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > 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了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 星子县| 宿州市| 永修县| 江孜县| 兴和县| 讷河市| 建阳市| 土默特右旗| 伊吾县| 新营市| 西吉县| 柳林县| 梁平县| 运城市| 高青县| 冷水江市| 宣汉县| 明溪县| 南城县| 兰溪市| 济阳县| 崇文区| 和静县| 纳雍县| 新郑市| 五寨县| 乌兰浩特市| 延吉市| 大洼县| 嘉善县| 贵定县| 延安市| 信阳市| 威信县| 南京市| 阳曲县| 尼勒克县| 盐源县| 定西市| 甘谷县| 怀宁县|