mwArray類說明 - [Matlab VC環境下編程]

原文地址:http://www.wl566.com/biancheng/160582.html

mwArray類說明 - [Matlab VC環境下編程]

時間:2014-12-13  來源:www.wl566.com   作者:網絡566
mwArray是一個C/C類的類型,而mxArray是C語言的類的類型1、創建mwArray陣列mwArray()創建空的Matlab陣列,類型爲mxDOUBLE_CLASSmwArray(mxClassIDmxID)創建mxID指定類>

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
發佈了10 篇原創文章 · 獲贊 94 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章