- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七节 MatLab扩展编程
* * 第七节 MatLab扩展编程 内容: § 1 MatrixVB—VB中的Matlab矩阵函数库 § 2 在C、C++中调用Matlab § 3 Matlab可执行程序 MatrixVB是MathWorks公司为VB作的一个附加插件,可以作为一个COM函数库被VB引用。该函数库利用与Matlab函数和语法格式类似的功能函数来加强VB的计算、数据处理和图形显示功能。 § 1 MatrixVB—VB中的Matlab矩阵函数库 为VB项目添加MatrixVB库: 1.新建VB项目 2.在【工程】下拉菜单中单击【引用】,在弹出的对话框中选中Mmatrix,单击确定。 调用MatrixVB函数: 在【立即窗口】中可以直接使用MatrixVB库函数 例:在【立即窗口】输入: x=erf(1) x.show C、C++是众多程序员十分喜爱的高级程序设计语言,但其在数值处理分析和算法工具等方面,效率远远低于Matlab 语言;在准确方便地绘制数据图形方面,Matlab 语言具有C和C++无法比拟的优势。但Matlab作为一种以解释方式运行的计算机语言,其程序的执行效率较低,而且不能实现端口操作和实时控制。因此,若能将两者结合运用,实现优势互补,将获得极大的效益。为此,MathWorks公司提供了Matlab和C、C++的接口。通过接口,用户既可在C程序中调用Matlab的函数,也可在Matlab中调用C或C++程序,从而实现Matlab和C、C++的混合编程。 § 2 在C、C++中调用Matlab 在C、C++中调用Matlab的主要过程: 1. 首先调用engOpen函数打开一个Matlab工程。 2. 生成mxArray 用mxCreate函数来创建矩阵,之后用mxSetName函数对它进行命名; 选择将一个自定义的数据结构复制到mxArray中. 4. 通过engEvalString函数向Matlab传递命令,如果成功,函数返回值为此0,否则返回一个非0值。 5. 将Matlab中的运行结果回传给C、C++ 3. 调用engPutArray函数将矩阵放入Matlab工作区 例子: demo.c #include windows.h#include stdlib.h#include stdio.h#include string.h/*在头文件中加入engine.h。其包含了调用的Matlab函数声明。*/#include engine.h int PASCAL WinMain (HANDLE hInstance,HANDLE hPrevInstance,LPSTR lpszCmdLine,int nCmdShow){Engine *ep; // 定义Matlab 引擎mxArray *a_ptr=NULL;char buffer[300]; // 定义数据缓冲区 double *wu;int i,j;/*创建一个新矩阵*/a_ptr=mxCreateDoubleMatrix(10,10,mxREAL);mxSetName(a_ptr,wu);wu=mxGetPr(a_ptr);for(i=0;i10;i++){for(j=0;j10;j++){wu[i+10*j]=(j+1)*(j+1)*(i+1)*(i+1);}}/* 打开Matlab 引擎*/if (!(ep = engOpen(NULL))) { MessageBox ((HWND)NULL, (LPSTR)Cant start Matlab engine, (LPSTR) demo.c, MB_OK);exit(-1);}/*传递新矩阵*/engPutArray(ep, a_ptr); /*画出图形并保存*/engEvalString(ep,mesh(wu););engEvalString(ep,print picture.eps -deps;);/* 获取Matlab 输出 */engOutputBuffer(ep, buffer, 300);/*关闭Matlab 引擎,结束调用*/engClose(ep);mxDestroyArray(a_ptr);return(0);} 以Borland C++ builder开发平台为例加以说明。1) 首先必须完成Matlab中链接库的导入工作。在Matlab\extern\include中存在_libmx.def、_l
您可能关注的文档
- 正弦余弦函数地图象1.ppt
- 正弦函数与余弦函数的性质(二).ppt
- 正弦函数的图象与性质教学设计(一).doc
- 每1朵花都有盛开的理由.ppt
- 每日汉语07(德语).doc
- 每日汉语08(德语).doc
- 每日汉语14(德语).doc
- 每日汉语21(德语).doc
- 每日汉语24(德语).doc
- 每日汉语31(德语).doc
- DB44_T+2767-2025河口海湾总氮、总磷水质评价指南.docx
- 中医药科技成果转化评价技术规范.docx
- DB44_T+2750-2025农村供水工程数字化建设技术导则.docx
- DB44_T+2769-2025金属矿山生态修复技术规范.docx
- 镁合金航天航空零部件长效防护微弧氧化膜层工艺规范.docx
- 《甘青青兰中绿原酸和胡麻苷含量的测定 高效液相色谱法》发布稿.pdf
- DB44_T+753-2025声环境质量自动监测技术规范.docx
- 信息技术 智算服务 异构算力虚拟化及池化系统要求.docx
- DB44_T+2759-2025黄荆栽培技术规程.docx
- 废生物制药溶媒再生乙腈.docx
最近下载
- 最高人民法院第二巡回法庭法官会议纪要合辑(详尽版).pdf VIP
- 一种黄梅秤锤树组织培养快速繁殖方法.pdf VIP
- T∕CGMA033001-2024压缩空气站能效分级指南.pptx VIP
- 云南省2026年普通高等学校面向中等职业学校毕业生招生考试旅游类模拟【A5】.doc VIP
- 行政法与行政诉讼法【名词解释】.doc VIP
- 一种黄梅秤锤树规模化扦插繁殖方法.pdf VIP
- GB50303-2015 建筑电气工程施工质量验收规范.docx VIP
- 2024—2025学年山东省青岛市高一上学期期末选科测试英语试卷.doc VIP
- FW19131气体灭火控制装置说明书V1.0-防威.pdf
- 气象灾害 课件高一地理人教版(2019)必修第一册.pptx VIP
原创力文档


文档评论(0)