网站大量收购闲置独家精品文档,联系QQ:2885784924

Matlab混编程7.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

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

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

1亿VIP精品文档

相关文档