vs2010和Matlab R2012b 混合编程.docx

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
vs2010和Matlab R2012b 混合编程

?vs2010和Matlab R2012b 混合编程2013-05-24 22:40?10114人阅读?评论(4)?收藏?举报?分类:?C++(2)?版权声明:本文为博主原创文章,未经博主允许不得转载。思路:为了实现matlab与C++混合编程,采用由m文件构造动态链接库然后在visual studio中调用的方法。本人系统:Windows 7旗舰版(32位),VS2010旗舰版,Matlab?R2012b????只有R2010b或以上版本才识别VS2010编辑器?1.?matlab中dll创建?????????1.1??? m文件编写????????? function [ yt ] = myfitline( x,y,m,xrange,t )???????? %xy为坐标向量,m为多项式阶数,xrange为显示图上面的坐标范围,t为要求的坐标横轴位置???????? %?? Detailed explanation goes here?????????p=polyfit(x,y,m);%计算各阶系数p1x^m+p2x^(m-1)++ pmx+ p(m+1)?????????yy=polyval(p,xrange);%计算一个区域内的函数值用于画图???????? yt=polyval(p,t);?? %? 计算指定x下的函数对应的y值???????? plot(x,y,r*,xrange,yy,b)???????? end??????? 1.2???设置编译器???????????????????? mex -setup?? 选择VS2010???????????????????? mbuild -setup??选择VS2010??????????????????? ? mcc -W cpplib:Myfitline -T link:lib myfitline???? (这就创建好了)??????????????其中,mcc是Matlab提供的编译命令,对于这一点,Matlab的帮助说明如下:?????????????? -W?lib:string?link:lib其中-W是控制编译之后的封装格式,cpplib,是指编译成C++的lib,cpplib冒号后面是指编译的库的名字,-T表示目标,???????link:lib表示要连接到一个库文件的目标,目标的名字是后面的myfitline,即你写的m函数的名字。????????????? 运行完之后,你的目录下面,将会出现以下一些文件:???????????? ?Myfitline.cpp????????????? Myfitline.exp????????????? Myfitline.dll????????????? Myfitline.exports????????????? Myfitline.h??????????????Myfitline.lib????????????? mccExcludedFiles.log????????????? readme.txt????????????? 具体每一个文件的意思,请查帮助,这里只说其中很有用的几个:??????????????Myfitline.dll是编译好的动态库,myfitline这个函数封装在里面,Myfitline.h是对应的头文件,在C里面调用这个函数的时候,需要include这个头文件,???????在这个头文件的最后,你可以看到下面的内容:????????????? extern LIB_Myfitline_CPP_API void MW_CALL_CONV myfitline(int nargout, mwArray yt, const mwArray x,????????????? const mwArray y, const mwArray m, const mwArray xrange, const mwArray t);?????????????????????????? 这就是myfitline的C函数的声明。nargout表示输出变量的个数,其他就是对应了m函数的几个变量。????????????? 注意,变量的类型是mwArray,这是Matlab提供的一个特殊的变量类型(在7.0的版本,编译之后,变量类型是mxArray)。mwArray是一个类,具体可以查帮助。?2.系统环境配置?????????????? Computer?-??Properties?-?Advanced?system?settings?-?Environment?Variables?-?User?Variables?-?path,?添加(MATLAB下为MATLAB 2012软件安装目录)???????????

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档