mwArray类说明

Matlab常用方法
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_ClassID mxID,mxCompleixity complex=mxREAL) 创建行数为num_rows,列数为num_cols,类型为mxID的Matalb阵列,对于数值型阵列,将complx做为最后一个参数,确定待创建阵列是否为复数阵列
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作为最后的一个参数,确定待创建阵列是否为复型的阵列。
mwArray(mwSize num_dims,const mwSize *dims,int st char**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};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 判断两个阵列是否相同
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,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);
matlab里有关于集合运算的函数有如下的一些:
intersect:集合交集 
ismember :是否集合中元素
issorted:判断集合是否排序 (相关函数,sort:排序)
setdiff :集合差集 
setxor :集合异或(不在交集中的元素) 
union :两个集合的并 
unique :返回向量作为一个集合所有元素(去掉相同元素)
          举例如下:
>> clear;
>> a=0;
>> A=[1 2 3 4 5];
>> B=[0 1 5 7 2];
>> C=union(A,B)%求集合A与B的并集
C =
    0    1    2    3    4    5    7
>> D=intersect(A, B)%求集合A与B的交集
D =
    1    2    5
>> E = setdiff(A, B)%求集合差A-B
E =
    3    4
>> F = setxor(A, B)%求A与B交集的补集
可再生能源电力配额管理办法
F =
    0    3    4    7
>> ismember(a,A)%判断a是否属于A
ans =
    0
>> issorted(A)
ans =
    1
[N,Bin]=histc(X,B)统计B中元素在X中出现的频次
cd11

本文发布于:2024-09-22 11:31:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/200427.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:返回   元素   创建   是否   集合   指定   结构
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议