当前位置:文档之家› MATLAB(R2015b)和C#(VS2010)混合编程实例说明

MATLAB(R2015b)和C#(VS2010)混合编程实例说明

MATLAB(R2015b)和C#(VS2010)混合编程实例说明
MATLAB(R2015b)和C#(VS2010)混合编程实例说明

1 平台

我采用的平台:

Matlab版本R2015b(32位)(备注:R2013b版本的工具包目前国内使用的破解版本,破解不完全,不支持混合编程,切记,其余版本不知道)。

Microsoft Visual Studio版本:2010(32位),这个软件版本没有太多要求。

2 MATLAB部分

该部分主要是说明Matlab生成DLL调用文件。

2.1配置Matlab 的编译器

1. 在MATLAB 的命令窗口中输入mbuild –setup 会弹出:

(这是我已经配置好的)

未配置的时候,会弹出

在弹出的选择项中,使用默认的[y](直接回车就是选择默认值),让Matlab 自动搜索可用的编译器。如果只安装了vs2010(如果未安装,请先安装),会弹出可选编译器为:

选择 1 回车

选择y 回车

至此,配置完成。

2.2Matlab写算法

这一部分不过多赘述,只以一个简单的示例进行说明。算法1:矩阵与其转置矩阵相乘的代码

function [result,m,n] = GetSelfMultiplyResult(list)

% 计算矩阵与其转置矩阵的乘积

% 测试返回多个结果

result = list*list';

[m,n] = size(result);

End

算法2:矩阵各元素平方运算

function result = GetSelfSquareResult(list)

% 计算矩阵各元素平方后的结果

result = list.^2;

end

2.3Matlab生成dll文件

1.应用程序里面找到Library Compiler应用程序。

2.进入Library Compiler工程应用界面

3.配置如下

1)选择目标类型(TYPE);

2)添加需要打包的函数文件;

3)重命名库名称。

(注:Class1 改的名字不能与Matlab 的函数名字一样)4.文件生成

CalcMatResult.dll CalcMatResultNative.dll 两个dll文件,均可使用。

3 C#部分

3.1添加DLL文件

C#端用到的就是MWArray.dll 和GetSelResult.dll 这两个DLL文件。

MWArray.dll 在matlab安装目录中,参考路径:

3.2演示代码

3.2.1调用引用DLL文件

两个Matlab标准库,一个生成的Matlab算法;

3.3源代码编写

具体编程细节不在展示。

3.4结果对比C#运算结果

Matlab运算结果

结果是一致的。

4 一些注意事项

https://www.doczj.com/doc/765597517.html,框架版本问题

创建新项目的时候,需要注意.NET版本问题,因为如果新建的项目.NET版本和Matlab转化的DLL .NET版本不一致的话,会出现DLL调用不过去的现象,报错说明是,未添加**引用。

图1 图2

图1是在新建项目的时候选取的是.NET 2.0版本,然而Matlab生成的DLL 是.NET 4.0,因此会在运行的时候报错(报错如下)。

相关主题
文本预览
相关文档 最新文档