- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文所使用的环境是VS2010+Matlab2011b ,此方法不适合Matlab2010 及以下的版本。本文
图比较多,但是按照此步骤走下去,一定可以成功的生成一个可调用的dll 文件。红字部分
为特别注意的地方。
示例代码可以在CSDN 中搜索用户bqrmt,在资源列表中查找。
生成C#的接口
在C# 中新建一个类库,如下图所示,工程名最好易识别,本文使用DemoTestInterface
修改平台配置,如果使用的项目是x86 的,就生成x86 ,否则就x64 。一定不能AnyCPU 。并
且x86 的平台只能使用x86 的Matlab 来生成,x64 的必须使用x64 的Matlab 生成。如果系
统是Win7x64 的,Matlab 一般是x64 的,如果需要生成x86 ,可以使用VMWare 虚拟机
添加引用,MWArray.dll ,路径为:..\ MATLAB\toolbox\dotnetbuilder\bin\win32\v2.0\ ,由于
VS2010 并不支持.Net 中直接添加,所以需要在浏览选项卡中添加,如下图所示。
如果使用的是VS2008 ,可以直接在.Net 选项卡中找到,MathWorks, .NET MWArray API。在此
选项卡中,按键盘上的“M”,出现的第一个,就是所要的文件。VS2010 中目前未能实现通
过此方法添加。也可以与VS2010 一样,在浏览中添加。
添加之后,如下图所示
在类文件的头部,添加using,内容如下:using MathWorks.MATLAB.NET.Arrays;,并修改类类
型为Interface 和相应的接口名。并注意接口名与命名空间名不能一样。如下图所示:
添加所需要实现的 Matlab 函数声明,本例中实现的是两个矩阵的乘法,添加声明,其中
MWNumericArray 是Matlab 与C#的变量转换中间类,在文章第11 页有具体细节的解释。此
处,只需要给出主函数的声明,子函数不需要声明。如下图所示:
MWNumericArray MatrixMultiply (MWNumericArray srcMat1, MWNumericArray srcMat2);
生成此接口文件,待调用。
Matlab 相关操作
编写需要实现的主函数,函数名需要与C#声明的函数名相同。如果需要使用到子函数,一
并编写子函数,此处使用子函数,将矩阵乘以1。由于本文只是一个示例,所以具体的变量
保护的措施,建议最好在C#调用Matlab 之前就做好,结合本例,如两个矩阵不一样大小等
等。注意主函数中的“double ”,如果希望主C#调用的结果是double 型的,此处需要强制转
换成double 型,其它类型则以希望输出的变量类型设置。文章第11 页有详细讲解。
新建一个Matlab 工程,可以由File-New-Deployment Project 创建,或者直接在Command
Window 中输入deploytool 创建,如下图:
修改工程名,适合自己习惯,这里使用MatlabMultiply.prj
修改Type ,为.Net Assembly,此步骤非常重要。
出现界面如下图所示:
选择Add class,根据自己习惯,以方便识别为原则,添加Matlab 的类名,这里使用CS,一
并将主函数拖动到此处。如果需要使用到子函数,将子函数拖动到Shared Resources 中。如
下图所示:
选择界面右上方的齿轮,在弹出的下拉菜单中选择Settings,进行相关配置
在弹出的界面中,需要设置两个地方,一个是.Net 设置,另一个是Type Safe API ,在.Net 设
置中,Microsoft Framework 默认选择是default,将此处按照目标环境修改,如VS2008 就选
择3.5,VS2010 选择4.0 。这里选择4.0
在Type Safe API 设置中,需要将上一步骤生成的接口文件复制到当前Matlab 函数的文件夹
中,并在Interface assembly 中选中。如下图所示:
选择右上角齿轮旁边的生成按钮,生成需要的dll 文件。
生成的文件中一般需要用到的有如下三个文件,CSIDemoTest.dll 、MatlabMultiplyNative.dll
和 DemoTestInterface.dll。特别的是,第二个文件,在distrib 文件夹中,有一个名字类似,
但是不带 Native 的文件,此文件不需要。第三个文件,是此前C#生成的接口文件。将此三
个
您可能关注的文档
最近下载
- 睿能热泵热水机安装手册-上海海立睿能.PDF
- 林业系统事业单位招聘考试《林业知识》真题库及答案1000题(参考).docx VIP
- 铁路客运车站标识系统暂行技术条件.doc VIP
- 基于产教融合背景下的高职汽车专业建设研究.pptx VIP
- 金银花生产技术规程.pdf VIP
- 山东省青岛实验高中2024届高一数学第二学期期末统考试题含解析.doc VIP
- 青岛《海绵城市设施运行维护导则》(2019修订版).pdf
- 2025年人教版小学六年级数学下册奥数竞赛测试考试题(附答案解析).docx VIP
- 课程思政教学比赛案例:《数字电子技术》课程.docx VIP
- 巧克力糖自动包装机.doc VIP
文档评论(0)