C#调用Matlab详细步骤

本文主要介绍c#程序调用matlab的步骤。其主要方法是先通过matlab将写好的function编译成dll,然后再供c#调用。具体步骤介绍如下:

1)配置环境

Matlab Runtime(MCR)一定要和c#项目一致。

C#项目是x64还是x86,还是AnyCPU,要确定。

Matlab Runtime的配置在系统的环境变量中查找。步骤:我的电脑右键属性->高级系统设置->环境变量->Path, 看runtime是win64还是win32。

2)将编写好的matlab function编译成dll

以function highpassfilter为例说明

首先在matlab命令行中输入deploytool,选择Library compiler,进入COMPILER界面,在TYPE类型里选择 .NET Assembly,在EXPORTED FUNCTIONS里,点击“+”,选择要编译的function函数。后面其他的配置不需要更改,若想对生成的dll文件里的类名进行修改,可以将默认的Class1修改。在这里,我修改成MatHpf。然后点击右上角的Package,保存并等待。编译成功后会出现一个函数名的文件夹,文件夹里有三个文件,其中for_testing里有生成的dll,可供c#调用。

3)C#调用dll

首先创建项目。在reference里添加两个依赖项。1)是刚才生成的highpassfilter.dll,2)是MWArray.dll文件,该文件在matlab安装目录下,我的是

C:\Program Files\MATLAB\R2016a\toolbox\donetbuilder\bin\win64\v2.0\MWArray.dll

32位matlab安装目录:

C:\Program Files (x86) \MATLAB\R2010a\toolbox\donetbuilder\bin\win32\v2.0\MWArray.dll

在程序里导入两个命名空间。

using MathWorks.MATLAB.NET.Arrays;

using highpassfilter;

4)其他电脑调用

注意:将来使用调用matlab的C#程序时候,可以不安装matlab程序,但必须安装matlab的运行环境,即MCRinstall文件,这个在matlab安装包里面一般可以找到。目录如下:

C:\Program Files (x86) \MATLAB\R2010a\toolbox\compiler\deploy\win32\MCRInstaller

你可能感兴趣的:(C#,Matlab)