mwArray类说明 - [Matlab VC环境下编程],有需要的朋友可以参考下。
mwArray是一个C/C++类的类型,而mxArray是C语言的类的类型 1、创建mwArray阵列 mwArray() 创建空的Matlab阵列,类型为mxDOUBLE_CLASS mwArray(mxClassID mxID) 创建mxID指定类型的Matlab阵列 mwArray(mwSize num_strings,const char**str)创建字符型阵列,字符串由str指定 mwArray(mwSize num_rows,mwSize num_cols,mx_ClassIDmxID,mxCompleixity complex=mxREAL)创建行数为num_rows,列数为num_cols,类型为mxID的Matalb阵列,对于数值型阵列,将complx做为最后一个参数,确定待创建阵列是否为复数阵列 mwArray(mwSize num_rows,mwSize num_cols,int num_fields,constchar**fieldnames)创建行数为num_rows,列数为num_cols结构体阵列,结构体域名为由fieldnames指定,域名个数由num_fields指定 mwArray(mwSize num_dims,const mwSize*dims,mxClassIDmxID,mxComplexitycmplx=mxREAL)创建任意维数的Matlab阵列,维数由num_dims指定,各维大小由dims指定,mxID指定阵列的类型。对于数值型阵列,将cmplx作为最后的一个参数,确定待创建阵列是否为复型的阵列。 mwArray(mwSize num_dims,const mwSize *dims,int num_fields.constchar**fieldnames)创建任意维数的结构体阵列,维数由num_dims指定,各维大小由dims指定,结构体域名由fieldnames指定,域名个数由num_fields指定 mwArray(const mwArra&arr)根据当前的阵列arr中创建一个新的阵列(复制) mwArray(const char*str) 根据字符串str创建一个新的字符型阵列 mwArray(re,im)创建一个新的数值阵列,实部为re,虚部为im mwArray(re)创建一个新的数值阵列,实部为re. 2、mwArray类方法 mwSize NumberOfNonZeros()const 返回稀疏阵列非零元素的个数 mwSize NumberOfElements()const 返回阵列中元素的个数 mwSize NumberofDimensions()const 返回阵列维数 mwSize MaximumNonZeros()const 返回稀疏阵列中最大的元素的个数 mwArray SharedCopy()const返回一个新的共享数据型mwArray阵列,此阵列与现有的mwArray阵列指向同一个数据块。 mwArray Serialize()const将mwArray序列化一个新的阵列,新的阵列为mxUINT8_CLASS类型 mwArray RowIndex()const 返回阵列元素的行索引;对于稀疏阵列,只返回非零原素的行索引例如 mwArray a(2,3,mxDOUBLE_CLASS); mwArray rows=a.RowIndex(); mwArray Real() 返回数值阵列的实部 例如 double rdata[4]={1.0,2.0,3.0,4.0};doubleidata[4]={10.0,20.0,30.0,40.0}; mwArray a(2,2,mxDOUBLE_CLASS,mxCOMPLEX); a.Real().SetData(rdata,4); a.Imag().SetData(idata,4); mwArray Image() 返回数值阵列虚部 mwArray Get(mwSizenum_indices,....)根据索引返回阵列元素,其中num_indices表示索引数目。Get函数中输入的索引均从1起始。例如 double data[4]={1.0,2.0,3.0,4.0}; mwArray a(2,2,mxDOUBLE_CLASS); double x; a.SetData(data,4); x=a.Get(2,2,2);//返回4 x=a.Get(1,3);//返回3 mwArray Get(const char *name, mwSize num_indices,...)返回结构体域名为name,指定索引的结构体域,其中num_indices表示索引的数目。Get函数中输入的索引均从1起始。例如 const char* fields[]={"a","b","c"}; mwArray a(1,1,3,fields); //b=a(1).a; mwArray b=a.Get("a",1,1);//b=a(1,1).b; mwArray b=a.Get("b",2,1,1); mwArray ColumnIndex() const 返回阵列元素的列索引;对于稀疏阵列,只返回非零元素的列索引。例如 mwArray a(3,2,mxDOUBLE_CLASS); mwArray rows=a.RowIndex(); int NumberOfFields() const 返回结构体域个数 int ElementSize() const 返回mwArray阵列元素大小 int CompareTo(const mwArray& arr)const 对比两个mwArray阵列 bool IsSparse()const 判断是否Sparse阵列 bool IsNumeric()const 判断是否是数值阵列 bool IsEmpty()const 判断是否是空阵列 bool IsComplex()const 判断是否复型阵列 bool Equals(const mwArray& arr)const 判断两个阵列是否相同 3、mwArray类操作符 operate()const 强制转换为其他类型 例如 double data[4]={1.0,2.0,3.0,4.0}; double x; mwArray a(2,2,mxDOUBLE_CLASS); a.SetData(data,4); x=double a(1,1); mwArray &operator=(const& x) 赋值操作符 例如 mwArray a(2,2,mxDOUBLE_CLASS); a(1,1)=1.0; mwArray operator()(mxIndex i1,mxIndex i2,mwIndex i3,...)索引操作符 例如 double data[4]={1.0,2.0,3.0,4.0}; double x; mwArray a(2,2,mxDOUBLE_CLASS); setData(data,4); x=a(1,1); mwArray operator(const char* name,mwIndex i1,mwIndex i2,mwIndexi3,....) 结构体域索引操作符. 例如 const char* fields[]={"a","b","c"}; int index[2]={1,1}; mwArray a(1,1,3,fields); mwArray b=a("a",1,1); 本文章由 软件制作网发布,转载勿必保留网站链接地址 http://www.wl566.com/biancheng/160582.html