matlab的C++库函数中mwArray类的接口源码.doc_第1页
matlab的C++库函数中mwArray类的接口源码.doc_第2页
matlab的C++库函数中mwArray类的接口源码.doc_第3页
matlab的C++库函数中mwArray类的接口源码.doc_第4页
matlab的C++库函数中mwArray类的接口源码.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

matlab的C+库函数中mwArray类的接口源码利用matlab的C+数学函数库进行编程,一定要对mwArray类比较熟悉才能做到游刃有余,特贴出mwArray类的接口源码,以便查阅!/* $Revision: 1.56 $ */ Copyright (c) 1995-2000, The MathWorks, Inc. All Rights Reserved./ dblmtrx.h/ Peter Webb, Sept. 1994/ The mwArray class. Instances of this class manipulate 2D arrays/ of double precision real numbers. #if !defined(dblmtrx_h)#define dblmtrx_h 1#if defined(MSWIND) & defined(_MSC_VER)#pragma warning(disable : 4291 4710)#endif#if defined(BORLAND) & _BORLANDC_ = 0x0540#include #include / This gets typedefs from stddef into global namespace#endif/ THIS NEEDS TO GO FIRST. The static initializer in init.h sets the memory / management functions, and needs to be executed before anything else./ The constructor for this static variable initializes the library. / Initialization consists of various tasks, including setting numeric/ constants like NaN and Inf, and turning off floating point exceptions/ (on non-IEEE platforms where that matters).#include init.h#ifdef GCC#pragma interface#endif#include #include mtrxref.h#include mathwork.h / Global typedefs and defines#include mlmexcpt.h / mlm_exception and MLM_THROW() macros#include stdexcpt.h / mwException hierarchy#include mwstr.h / mwString#include arrayidx.h#if 0#ifdef COMPLEX_CLASS_EXISTS#include #endif#endif/ Include private information about MATLAB struct matrix. Rename / Matrix to MatlabMatrix. Also include MLM (built-in) and MLT (toolbox)/ function prototypes.#define Matrix MatlabMatrixextern C #include libmatlb.h / End extern C#undef Matrix/ These are defined by MATLAB for automatic generation of header files/ C+ needs them unadorned.#undef public#undef private/ Forward decls./ We cant include arrayidx.h because there is a dependency loop/ between mwArray and mwArrayIndex. Therefore, forward/ declare mwArrayIndex here.class mwArrayIndex;class mwArrayIndexList;class mwVarargin;class mwNumericSubArray;class mwEmptySqBracket;/ Typedefstypedef int Dimension;/ The default action is to fill the array with zeros. This enum is used/ by the mwArray constructors.enum mwNumericInitAction mwEyeAct, / Places ones on the main diagonal mwOnesAct, / Fill array with ones mwZerosAct, / Fill array with zeros mwRandAct, / Fill array with random numbers mwRandnAct / Fill array with normally distributed random numbers;/ Enumeration indicating the type of the elements stored in the / arrayenum mwNumericEltType mwReal64, mwInt8, mwUnknownNumericEltType;/ The mwArray class is the heart of the MATLAB C+ Math Library./ An mwArray contains a pointer to a MatrixRef object. The/ mwArray class has four private static class variables, / IndexBase, an integer that indicates the index of the first element/ in the matrix and three counter variables, one each for constructor/ calls, destructor calls and scalar constructors./ Most of the math routines take mwArray objects as arguments and/ return mwArray objects as results. Many of the mwArray/ methods are inline, for efficiency.#undef EMPTY#undef UNDEFINEDclassDLL_EXPORTmwArray.public:/*/Constants/Invalidinputandoutputmatrices.UsedbytheMATLABCompilerfor/specifyingdefaultargumentstofunctions.#ifdefined(BORLAND)|defined(SGI)staticmwArrayDIN;/DefaultinputstaticmwArrayDOUT;/DefaultoutputstaticmwArrayUNDEFINED;/UNDEFINEDArraystaticmwArrayEMPTY;#elsestaticconstmwArrayDIN;/DefaultinputstaticconstmwArrayDOUT;/DefaultoutputstaticconstmwArrayUNDEFINED;/UNDEFINEDArraystaticconstmwArrayEMPTY;#endif/*/FriendsfriendclassmwArrayIndex;friendclassmwVarargin;friendclassmwNumericSubArray;friendclassmwOutputArg;/*/Constructors/mwArray.TheconstructorsalsocountthenumberofmwArray/objectsbuilt.mwArray();mwArray(constchar*str);mwArray(mwStringstr);mwArray(Dimension,Dimension,mwNumericInitAction);mwArray(Dimension,Dimension,double*real,double*imag=0,intcopy=1);mwArray(Dimension,Dimension,int*real,int*imag=0);mwArray(Dimension,Dimension,unsignedshort*real,unsignedshort*imag=0);mwArray(Dimension,Dimension,short*real,short*imag=0);mwArray(constmwArray&mtrx);mwArray(constMatlabMatrix*mtrx,mwBoolfreeflg=1);mwArray(constMatlabMatrix*mtrx,mwBoolfreeflg,mwBoolstaticflg);mwArray(doublestart,doublestep,doublestop);mwArray(constmwArrayIndex&idx);mwArray(constmwNumericSubArray&a);mwArray(MatrixRef*matref);mwArray(constmwEmptySqBracket&eb);mwArray(double);mwArray(double,double);mwArray(int);mwArray(int,constchar*);mwArray(mxFunctionPtrf,constchar*name=);mwArray(bool);mwArray();/*/Inputandoutputfriendinlineostream&operator(istream&is,mwArray&);voidRead(istream&,intis2D=0);voidWrite(ostream&)const;voidPrint(constchar*name)const;/AssignmentmwArray&operator=(constmwArray&);/*/Memorymanagement.Overrideoperatorsnewanddeleteinlinevoid*operatornew(size_tsize);inlinevoid*operatornew(size_tsize,unsignedinti);inlinevoidoperatordelete(void*ptr);inlinevoidfreeMem();/*/Dataextraction.Reachintothematrixandgraboutthedoublesstored/there./Extractdataaseitherintegers(usedinindexing)ordoubles.voidExtractData(int32*);voidExtractData(double*);voidExtractData(double*,double*);doubleExtractScalar(double&,int32)const;doubleExtractScalar(int32)const;doublex(int32i)const;/ReturntheMatlabMatrixassociatedwiththismwArray.Notto/beusedlightly.Thepointeryougetbackistherealthing-donot/writetothematrixstructure,ordeletethepointer(with,forexample,/mxDestroyArray).Ifyoudo,expectyourprogramtocrashsoonafterwards.inlineMatlabMatrix*GetData()const.returndata-data;#if0voidSetData(MatlabMatrix*d);#endifMatlabMatrix*FreezeData(void);int32GetRefCount().returndata-GetRefCount();voidClear();/*/Indexing.Overloadthe()operatortoprovidemulti-dimensionalindexing.mwArrayoperator()(constmwVarargin&a)const;mwNumericSubArrayoperator()(constmwVarargin&a);mwArrayoperator()(constmwArray&a1,constmwArray&a2)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19,constmwArray&a20)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19,constmwArray&a20);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19,constmwArray&a20,constmwArray&a21)const;mwNumericSubArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19,constmwArray&a20,constmwArray&a21);mwArrayoperator()(constmwArray&a1,constmwArray&a2,constmwArray&a3,constmwArray&a4,constmwArray&a5,constmwArray&a6,constmwArray&a7,constmwArray&a8,constmwArray&a9,constmwArray&a10,constmwArray&a11,constmwArray&a12,constmwArray&a13,constmwArray&a14,constmwArray&a15,constmwArray&a16,constmwArray&a17,constmwArray&a18,constmwArray&a19,constmwArray&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论