- 1、本文档共115页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab混编程7
mxArray *data; char *str; data=mxCreateString(This was created using mxCreate String); str=(char*)mxMalloc(32*sizeof(char)); str=This was created using mxMalloc; ... mxDestroyArray(data); /* 释放使用 mxCreate 分配的内存空间*/ mxFree(str); /* 释放使用 mxMalloc 分配的内存空间*/ 此外,在mx函数中还存在一些mxSet函数用来完成数据的赋值,例如mxSetPr、mxSetPi、mxSetData和mxSetImagData等函数,在使用这些函数时也需要注意,避免发生不必要的错误,参见下面的MEX函数代码片段: /*创建mxArray数据类型指针*/ mxArray *temp = mxCreateDoubleMatrix(0,0,mxREAL); /*实际包含的数据*/ double data[5] = {1,2,3,4,5}; /*设置矩阵的行数和列数*/ mxSetM(temp,1); mxSetN(temp,5); /*数据的赋值*/ mxSetPr(temp, data); /* 错误 */ 在上述的代码段中,直接使用mxSetPr函数是错误的,原因如下: 当该MEX函数运行完毕退出时,MATLAB将试图释放那些没有使用mx函数分配的内存空间,所以上述代码创建的data数据将被释放,而mxArray数据类型指针的数据同样也会被释放掉,这样就造成了错误。 所以正确的方法是通过memcpy函数完成内存数据的拷贝复制,这样就不会出现因内存数据丢失而引起的不必要的错误,正确的做法是: mxArray *temp = mxCreateDoubleMatrix(0,0,mxREAL); double data[5] = {1,2,3,4,5}; mxSetM(temp,1); mxSetN(temp,5); memcpy(mxGetPr(temp), data, 5*sizeof(double)); /* 正确 */ 这就是为什么前面小节所有的代码示例中都通过memcpy函数来完成赋值的原因。 7.4 MATLAB的环境配置 7.4.1 基本配置 在进行基本配置之前,一定要在操作系统中安装相应的C语言或者Fortran语言编译器。例如在Windows平台中,安装Microsoft Visual Studio,如果需要编写Fortran语言的应用程序,则需要安装相应的Fortran开发环境。不同的操作系统平台可以选择不同的语言编译器,MATLAB支持的C/C++、Fortran语言编译器的详细列表可以参阅MATLAB的相关帮助文档。 在本小节以Windows平台为例,讲解编译器的配置过程。配置MATLAB编译环境的方法非常简单,在MATLAB的命令行窗口中键入下面的指令: mex -setup 这时,在MATLAB命令行窗口中将出现下面的提示: Please choose your compiler for building external interface (MEX) files: Would you like mex to locate installed compilers [y]/n? 用户可以让MATLAB自己搜索当前系统平台下已经安装完毕的编译器或者开发环境,也可以自己来挑选,如果在上面的提示下,按“N”键,则由用户自己选择编译器: Select a compiler: [1] Borland C++Builder version 6.0 [2] Borland C++Builder version 5.0 [3] Borland C++Builder version 4.0 [4] Borland C++Builder version 3.0 [5] Borland C/C++ version 5.02 [6] Borland C/C++ version 5.0 [7] Borland C/C++ (free command line tools) version 5.5 [8] Compaq Visual Fortran version 6.1 [9] Compaq Visual Fortran version 6.6 [10] Digital Visual Fo
您可能关注的文档
- matlab指大全.doc
- matlab操.ppt
- Matlab操指令.doc
- matlab教a.ppt
- Matlab教Ch8.ppt
- MATLAB教第2章.ppt
- MATLAB教第三章.ppt
- matlab数计算与符号计算.ppt
- MATLAB曲拟合.doc
- MATLAB清课件4.ppt
- 语文-广东省肇庆市2025届高三第二次模拟试卷和答案(肇庆二模).docx
- 中国通信行业运行情况月度报告(2024年1-11月).pdf
- 2024年中国新能源汽车行业全球竞争力分析与各国进口贸易法规影响白皮书-特易资讯.pdf
- 热电“三保”与碳排双控.pdf
- 数据中心行业分析报告 2025.pdf
- 【灼鼎咨询】2024年自动驾驶行业知识报告(智能驾驶、新能源汽车、NOA).pdf
- 政治-江苏省苏州市2024-2025学年2025届高三第一学期学业期末质量阳光指标调研卷试题和答案.docx
- 政治-广东省东莞市、揭阳市、韶关市2025届高三期末教学质量检查试题和答案.docx
- 自适应物理安全与信息安全系统 -智能制造的动态安全方法 2025.pdf
- 【国联证券】通信行业专题研究:Marvell AI day,算力需求推动光互联加速迭代.pdf
文档评论(0)