Matlab2013b和Visual Studio 2013混合编程总结

本文详细介绍了如何在Matlab2013b和Visual Studio 2013之间进行混合编程,包括软件版本选择、系统环境变量设置、Matlab编译器的配置、DLL文件生成以及C#调用DLL的步骤。通过实例展示了如何在C#中调用Matlab函数,同时提供了异常情况的解决方案和相关参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 Matlab2013b和VisualStudio 2013混合编程总结

 

一、       关于软件版本和安装的说明

一般来说,Matlab版本需高于或者等于VisualStudio的版本。综合版本功能和兼容问题,我们选用了Matlab 2013b和Visual Studio 2013。 

Matlab2013b能够识别VisualStudio2012版本,前提是Visual Studio2012装在C盘默认目录。如果安装的是2013版本的话,Matlab无法识别,但是可以手动选择路径使得Matlab找到VS的编译器。详细的图文说明在第三部分说明。

二、       系统环境变量的设置

Computer -> Properties -> Advanced system settings ->Environment Variables -> User Variables -> path,添加Matlab2013b的安装路径:

…\MATLAB\extern\lib\win64\microsoft;

…\MATLAB\bin\win64

 

Computer -> Properties -> Advanced system settings ->Environment Variables -> System Varables -> path,添加路径:

…\MATLAB\runtime\win64;

…\MATLAB\bin;

…\MATLAB\extern\lib\win64\microsoft;

…\MATLAB\bin\win64;

 

三、       Matlab的设置以及DLL文件的生成

<一>Matlab的设置

在Matlab中设置编译器的时候,经过测试,存在两种情况。分别说明如下:

情况一:

>> mex –setup

>> y

如上所示,Matlab没有找到编译器。此时的问题可能是:1.没有安装SDK,在上面截图中的蓝色的网址中下载SDK并安装;2.没有安装Matlab2013b能识别的VS或者VS没有安装在默认文件夹。

如果是问题1则需要下载安装SDK

如果是问题2的话,则重新输入>>mex –setup然后选择n

如上图所示,Matlab弹出了它所支持的编译器,此时选择[18]或者其他MVC,然后弹出提示后,选择n,自己手动添加路径,添加VS2013的安装路径。

弹出提示后选择y。显示一下界面则是成功了。

 

接下来输入mbuild -setup,设置方法同mex –setup。

至此,Matlab 编译器设置完毕。

 

情况二:

只找到了matlab的编译器,没有找到vs的:

那么有两个解决方案,在C盘在安装一遍vs,或者是选择n然后跟情况一的问题2一样操作。最好最顺利的情况是按y有出现vs编译器。

<二>DLL文件的生成

1.首先编写.m文件并保存。

例如myadd2.m:

2.建立DeploymentProject

方法一:在matlab命令窗口输入 >> deploytool 弹出如下界面,选择ApplicationCompiler。

方法二:在Matlab菜单栏选择APPS,选择Application Compiler

 

选择Application Compiler后出现以下界面:

如图所示进行操作。这里需要注意的是,matPrj是matlab的Project名,同时也是生成的DLL文件名和C#中的命名空间名称,而maMathClass则是命名空间中的类名,MatrixOpera和myadd2则是类中的方法名称。

最终在输出文件夹里找到几个关键文件:

主要是DLL文件。在Matlab的安装目录下:

…\MATLAB\toolbox\dotnetbuilder\bin\win64\v2.0中找到MWArray.dll,然后将MWArray.dll和prj.dll拷到C#的工程中的Debug文件夹中。

四、       Visual Studio的设置以及C#调用DLL文件

Matlab和C#混合编程的时候,VS不需要特殊的设置,Matlab和C++混合编程的时候VS设置比较麻烦,这个在后面再做说明。以下讲C#的设置。

在VS2013中建立C#窗体应用程序

建立完之后需要往工程里面添加引用。

如上,在引用那里右键添加引用,然后点击浏览找到MWArray.dll和prj.dll并添加,结果如图所示,点击确定退出。

 

在需要使用prj中的函数的文件里面添加如下命名空间说明:

using MathWorks.MATLAB.NET.Arrays;

using MathWorks.MATLAB.NET.Utility;

using matPrj;

 

为了简单的测试,可如下操作:

matlab在关联编译器的时候 会出现找不到编译器的问题 原因是matlab要找windows sdk的mt exe 本文件修改方法也是根据wiills的那篇“matlab找不到编译器的问题”(matlab无法找到vs2012)的修改方法进行的 请参考:http: download youkuaiyun.com download wiills 4621079 本次修改如下说明: 1 本次为:Matlab版本为Matlab 2013b(64bit版本)无法关联visual studio 2013编译器的解决方法 2 相对于wiills的修改来说 使用读注册表的方法(不删除添加任何语句 只是修改) 而不是使用绝对路径给出地址 理论上讲如果VS2013的安装路径不是默认的 只要版本对的话把这些文件添加进相对性的目录也是可以关联的 3 使用方法 复制wiills的说明了 哈哈 : 1 把附件相关的5个文件添加到matlab bin win64下面的2个相关目录 2 在matlab 里面运行 mbuild setup 然后选 y 再选择2013的那个项目 再选y 3 这是应该成功了 4 mex setup也是一样的 如果是Matlab 2013b 32位版本的可以复制出matlab bin win64两个相关目录下(mexopts目录下的:msvc110opts stp msvc110opts bat msvc110engmatopts batmbuildopts目录下的:msvc110compp bat msvc110compp stp)这五个文件 VS2012的支持文件 对照本文下面给出方法自行修改即可 ">matlab在关联编译器的时候 会出现找不到编译器的问题 原因是matlab要找windows sdk的mt exe 本文件修改方法也是根据wiills的那篇“matlab找不到编译器的问题”(matlab无法找到vs2012)的修改方法进行的 请参考:http: download youkuaiyun.com downlo [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值