c调用matlab函数(混合编程).doc

c调用matlab函数(混合编程).doc

ID:62033175

大小:599.00 KB

页数:11页

时间:2021-04-15

c调用matlab函数(混合编程).doc_第1页
c调用matlab函数(混合编程).doc_第2页
c调用matlab函数(混合编程).doc_第3页
c调用matlab函数(混合编程).doc_第4页
c调用matlab函数(混合编程).doc_第5页
资源描述:

《c调用matlab函数(混合编程).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第2部分实战练习(自己做的)2.1c#调用matlab函数matlab版本2009b,c#版本vs2008.2。1.1matlab函数编译成dll文件(1)首先编写一个函数的m文件,如MatrixOpera表示两个矩阵相加和相减。%--—---———---——-———---————-—-----——------————-—————---——-function[addRlt,minusRlt]=MatrixOpera(a,b)%矩阵相加,相减[m1,n1]=size(a);[m2,n2]=size(b);ifm1~=m2 |

2、 n1~=n2display

3、('矩阵大小不相同’)error('参数错误');endaddRlt=a+b;minusRlt=a-b;end%—----——--—----------—-—----—-—-—-——-———---——-------—-—-—---两个输入参数,两个输出参数,并且都是矩阵形式(2)在matlab命令窗口输入deploytool,弹出如下窗口或者点击matlab的主菜单desktop→deploy tool获得如下面图所示的窗口,然后在file→new→deploymentproject中点击。获得上图窗口,修改工程名称和文件后缀名(必须是,.Net As

4、sembly格式)修改ﻬ(3)新建了一个叫matPrj的工程(它相当于c#中的命名空间namespace);然后给它增加class或类(它就是c#中的类),点[addclass]比如myMathClass;之后再给它添加方法(它就是函数了),点[addfiles],如下图所示.本实例中给它添加了MatrixOpera等函数。方法class(4)完了之后就可以编译了。编译出来后需要一两分钟的时间。编译(5)找到该工程存放的文件夹,从里面拷出matPrj。dll文件。同时还要从G:ProgramFilesMATLABR2009btoolboxdo

5、tnetbuilderbinwin32\v2.0拷贝出MWArray.dll和ManagedCPPAPI.netmodule.第二个文件必须要哦,否则可能会出错。2.1.2c#添加matlab的dll引用(1)打开vs2008,新建一个窗体应用程序。(2)将刚才拷贝到的那3个文件一起放在vs工程(CallMatlabDllApp)的debug文件夹下面。然后右键下图中的引用,选择添加引用,弹出一个窗口,选择其中的浏览页面,分别添加matPrj.dll文件和MWArray。dll文件。已经添加了的引用右键,点添加引用(3)最后在前面,代码的前面添加下

6、面的命名空间即可。usingMathWorks。MATLAB.NET。Arrays;//在MWArray.dll,最常用的usingMathWorks.MATLAB.NET。Utility;//在MWArray.dll,最常用的using matPrj;//这个就是我们自己定义的,里面有matlab函数如果matlab函数复杂,还需要用到其他的空间,则视情况而定,自己凭经验添加.已经添加了的引用至此,已经可以利用c#调用我们用matlab编写的函数了。2.1。3函数调用函数调用前必须注意:(1)将c#的参数输入到matlab函数时,要将参数转化为mat

7、lab的参数形式,通常是MWArray类型。(2)matlab返回的参数,也要转化为c#用的类型,比如数组或者数值类型。下面是关于(1)和(2)的介绍,从别人那拷过来的,具体可参考http://apps.hi。baidu.com/share/detail/294982直接将值传递给已经初始化的MWArray数组中的成员直接将数据类型赋值给已经初始化的MWNumericArray变量。直接将字符串类赋值给已经初始化的MWCharArray变量。如果是数组类型:直接赋值给MWNumericArray变量;赋值给MWArray变量,则在前面加上类型转换如:(

8、MWNumericArray)进行强制转换。总之,MWArray是总类型,其它的以MW开头,以Array结尾的变量类型都可以直接对它进行赋值或取值。M类型到C++/C#数据类型MWArrayM类型,它是M文件的编译后内部的标准类型,一切C++/C#类型都要最终转换成此类型,方可作为参数调用M语言函数.MWCharArrayM的字符串类型,使用它可以将M中的字符类型转换成C++/C#的字符串类型。MWNumericArrayMWNumericArray是MWArray与C#等语言的转换中间类型。常用的转换函数: ①publicArray ToArray(

9、MWArrayComponentcomponent);将M类型转换成C#的Array类型,然后

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。