如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
重庆科技学院学生毕业设计(论文)外文译文学院电气与信息工程学院专业班级计科普08-2学生姓名旷尧学号2008442322译文要求外文翻译必须使用签字笔,手工工整书写,或用A4纸打印。所选的原文不少于10000印刷字符,其内容必须与课题或专业方向紧密相关,由指导教师提供,并注明详细出处。外文翻译书文本后附原文(或复印件)。创建C++MEX文件MEX文件支持C++的所有语法标准.本节讨论使用特定的C++语言创造并利用MEX文件时要考虑的问题。创建你的C++源文件在C++MATLAB提供的例子的源代码使用.cpp扩展名。CPP是明确的,普遍被C++编译器认可。其他可能的扩展名包括.C,.CC,.CXX。使用C++特性的信息,请参阅技术说明1605的MEX文件的指南部分,在http://www.mathworks.com/support/tech-notes/1600/1605.html.Look的“C++MEX-文件”主题下的部分。编译和链接在你的系统上只能运行同一Matlib环境编译的C++MEX文件。使用MEX-setup来选择一个C++编译器,然后键入:MEXfilename.cpp您可以使用在第3-54页的表格上显示的“MEX脚本开关”命令行选项。你的链接命令必须拥有MEX的功能的依赖所有必要的DLL文件。为了帮助你检查相关文件,你可以参见3-41页关于“DLL文件不是在MicrosoftWindows的系统路径”故障排除主题。举例第4-23页的“在MEX文件中使用C++的特点”和4-24页的“C++文件处理”的例子阐明了通过在你的MATLAB目录使用C++源码是可行的。对于类析构函数的内存注意事项不要在一个MATLAB方法使用的C++类的析构函数中使用mxFree或者mxDestroyArray方法。如果MEX方法抛出了一个错误。MATLAB会清理MEX文件的变量,这些在4-41页的“临时数组的自动清理”中介绍。如果有对象溢出引起的错误,MATLAB会调用C++的析构函数。在构造函数中直接释放内存意味着MATLAB和析构函数会释放相同的内存,从而引起内存的未知错误。使用mexPrint去输出到MATLAB的命令窗口使用Cout或者C语言的printf函数在C++MEX文件中不会像预期一样的工作。使用mexPrintf函数代替。C/C++MEX文件源码的例子在这一节:4-11页“C/C++例子介绍“4-12页“传递一个标量”4-13页“传递字符串”4-14页“传递2个或以上的输入输出”4-16页“传递结构体和单元数组”4-17页“填充一个mxArray”4-18页“提醒使用者输入”4-19页“处理8位,16位和32位数据”4-20页“操纵多维数组”4-21页“处理稀松数组”4-22页“从C/C++MEX文件调用函数”4-23页“在MEX文件中使用C++的特点”4-24页“使用C++处理文件”介绍了C/C++的例子MATLABC/C++和FortranAPI参考提供了MATLAB运行时支持的数据处理类型的所以结合。对于每一个数据类型,都有一个能够让你用来处理数据的特殊的函数集合。第一个例子论述了一个是一个标量加倍的简单例子。然后,这些例子论述了如何传递,处理和返回各种各样的数据类型,和如何处理多个输入输出。最后,本节论述了传递和处理各式各样的MATLAB类型。本机例子的源码在matlabroot/extern/examples/refbook文件夹下。为了编译这些例子,需要确认你使用一个选择使用了mex-setup命令的C/C++编译器。然后在MATLAB的命令行输入:Mexfilename.cFilename是例子的名字。matlabroot/extern/examples/refbook包括了在本文中使用的MEX文件例子(C,C++和Fortran)。接下来主题来看看例子所使用的源码。除非特殊说明,术语”MEX-file”指的是源文件。对于MATLAB可用的MEX例程列表,请参考3-35页的“MEX例程表”。传递一个标量看一个简单的和MEX文件等价C代码.这个计算函数使用一个标量并是他加倍:#include<math.h>voidtimestwo(doubley[],doublex[]){y[0]=2.0*x[0];return;}在MATLAB编辑其中打开看到写在在MEX文件格式中(timestwo.c)同样的函数。在C/C++中,编译器检测函数的参数,在MATLAB中,你可以传递任何数字或者类型的参数到一个