手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#调用Matlab生成的dll方法的详细说明
C#调用Matlab生成的dll方法的详细说明
摘要:其实整个过程比较简单,但是需要心细一点。需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MA...

其实整个过程比较简单,但是需要心细一点。

需要的工具: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了。

【C#调用Matlab生成的dll方法的详细说明】相关文章:

C# TextBox 扩展方法数据验证详细说明

深入反射生成数组的详解

用C#编写获取远程IP,MAC的方法

C#几种截取字符串的方法小结

C#访问应用程序配置文件的方法

C#访问PostGreSQL数据库的方法

C# 运用params修饰符来实现变长参数传递的方法

C#异步调用的好处和方法分享

c# 调用.bat文件的实现代码

在C#中调用VBScript、javascript等脚本的实现代码

精品推荐
分类导航