文档章节

mwArray类说明

SVD
 SVD
发布于 2016/03/27 14:47
字数 1021
阅读 42
收藏 1

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 num_fields.const 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); 


本文转载自:http://www.aichengxu.com/view/39432

共有 人打赏支持
SVD

SVD

粉丝 34
博文 207
码字总数 102940
作品 0
海淀
私信 提问
加载中

评论(1)

t
tractor
感谢楼主分享,mark,下载。0
详细讲解混合编程——C++调用MATLAB程序,以及常用问题解决(附加程序演示和下载)

本篇文章主要介绍混合编程——C++调用MATLAB程序,以及常用问题解决,并给出通过测试的示例程序。 目录: C++调用MATLAB程序方法 示例程序 常用问题解决 程序下载

qq_1196581964
2018/11/22
0
0
mwArray

在vc中调用MATLAB产生的组建时,需要将vc中的参数转换成mwArray格式。 对mwArray赋值,主要包括矩阵赋值和字符串赋值。 一.矩阵赋值 <1>mwArray 定义矩阵变量 mwArray A(rows, cols, type) ...

曾劲松
2016/08/10
15
0
MATLAB与C#混合编程

Matlab 数据类型与.NET 数据类型转换 by-GalaxyGap 2012-12-11 用 Matlab 写算法还是有很多优势的,具体表现在以下几个方面:1)Matlab 的内部函数是用 C 语言写的,虽然 M 语言是解释性语言,...

SVD
2016/04/06
532
6
VC调用matlab函数mclcppMlfFeval重复定义

问题背景: 用mcc -W cpplib:libname -T link:lib -v matlab_m_file.m 编译.m文件,生成vc可用的动态连接库和.h头文件,相关数据.c文件,和一个.cpp文件(m_to_cpp.cpp),该.cpp文件中.h文件...

长平狐
2012/10/08
187
0
c++调用matlab生成的Dll动态连接库

点击打开链接 http://download.csdn.net/detail/nuptboyzhb/4228429 c++调用matlab生成的Dll动态连接库 实验平台: matlab 7.0(R2009a) VC++6.0 思路: 1. 设置matlab的编译器,使用外部的V...

长平狐
2012/10/08
2.6K
0

没有更多内容

加载失败,请刷新页面

加载更多

grafana安装使用及与zabbix集成

grafana简介 Grafana是一个完全开源的度量分析与可视化平台,可对来自各种各种数据源的数据进行查询、分析、可视化处理以及配置告警。 Grafana支持的数据源: 官方:Graphite,InfluxDB,Ope...

阿dai学长
37分钟前
7
0
带你看数据挖掘与机器学习-厦大EDP上课出勤预测

带你看数据挖掘与机器学习-厦大EDP上课出勤预测 标签: 数据挖掘 特征工程 机器学习 出勤预测 write by xmhexi 2019/3/22 内容提要 首先说明本文是一篇科普文章,通过一个实际案例,帮助理解什...

xmhexi
今天
100
0
IOS  学习记录

1.StackView=>IOS 9及以上支持 2.布局方式: AutoLayout / StackView 堆布局 (线性布局) 3.屏幕适配 (资源分辨率、设计分辨率、屏幕分辨率) Size Class技术 可以针对 屏幕的方向进行设置...

萨x姆
今天
5
0
第四次工业革命:自主经济的崛起

https://36kr.com/p/5170370.html

shengjuntu
昨天
5
0
Cloud Native 与12-Factor

12-Factor(twelve-factor),也称为“十二要素”,是一套流行的应用程序开发原则。Cloud Native架构中使用12-Factor作为设计准则。 12-Factor 的目标在于: 使用标准化流程自动配置,从而使...

waylau
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部