mwArray類說明

mwArray類說明 - [Matlab VC環境下編程],有須要的朋友能夠參考下。編程

mwArray是一個C/C++類的類型,而mxArray是C語言的類的類型函數


一、建立mwArray陣列


mwArray() 建立空的Matlab陣列,類型爲mxDOUBLE_CLASSspa


mwArray(mxClassID mxID) 建立mxID指定類型的Matlab陣列索引


mwArray(mwSize num_strings,const char**str)建立字符型陣列,字符串由str指定字符串


mwArray(mwSize num_rows,mwSize num_cols,mx_ClassID mxID,mxCompleixity complex=mxREAL) 建立行數爲num_rows,列數爲num_cols,類型爲mxID的Matalb陣列,對於數值型陣列,將complx作爲最後一個參數,肯定待建立陣列是否爲複數陣列string


mwArray(mwSize num_rows,mwSize num_cols,int num_fields,const char**fieldnames)建立行數爲num_rows,列數爲num_cols結構體陣列,結構體域名爲由fieldnames指定,域名個數由num_fields指定域名


mwArray(mwSize num_dims,const mwSize*dims,mxClassID mxID,mxComplexity cmplx=mxREAL)建立任意維數的Matlab陣列,維數由num_dims指定,各維大小由dims指定,mxID指定陣列的類型。對於數值型陣列,將cmplx做爲最後的一個參數,肯定待建立陣列是否爲復型的陣列。it


mwArray(mwSize num_dims,const mwSize *dims,int num_fields.const char**fieldnames)建立任意維數的結構體陣列,維數由num_dims指定,各維大小由dims指定,結構體域名由fieldnames指定,域名個數由num_fields指定io


mwArray(const mwArra&arr)根據當前的陣列arr中建立一個新的陣列(複製)序列化


mwArray(const char*str) 根據字符串str建立一個新的字符型陣列


mwArray(re,im)建立一個新的數值陣列,實部爲re,虛部爲im


mwArray(re)建立一個新的數值陣列,實部爲re.


二、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};double idata[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(mwSize num_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 判斷兩個陣列是否相同


三、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,mwIndex i3,....) 結構體域索引操做符.

例如

const char* fields[]={"a","b","c"};


int index[2]={1,1};


mwArray a(1,1,3,fields);


mwArray b=a("a",1,1); 

相關文章
相關標籤/搜索