mwArray与C++接口
1.Matlab调用C++:http://blog.csdn.net/zouxy09/article/details/20553007
摘录下效果图:
2.mwArray类操作:http://blog.sina.com.cn/s/blog_9460ff790101fujz.html
2.1. 复数数组的初始化(由C到matlab)
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中获取元素
a.Real().GetData(buffer,len);
a.Imag().GetData(buffer,len);
2.2. cell元组阵列的获取
由于mwArray索引运算符()直接返回mwArray类型,因此可以直接声明通过索引获取元组内的矩阵值。
eg: a={[1],[2],[1 2;3 4];[1 3;2 4],[1],[2]};
mwArray b=a(2); //b=[1 3;2 4];
mwArray c=a(5); //c=[1 2;3 4];
PS:mwArray中数组为按列排,因此[1 3;2 4]的索引号为2
2.3. mwArray成员函数使用
int NumberOfDimensions 返回矩阵维数
int NumberOfElements 返回矩阵元素个数
mwArray GetDimensions 返回一维矩阵,表示矩阵各维大小
bool IsComplex 判断是否复数矩阵
PS:使用GetData前可先使用NumberOfElements确定元素个数,避免越界。
2.4. 字符串转换为mwArray
char str[]="inFile.mat";
mwArray inFile(str);
则inFile则可以直接作为函数的输入参数进行传递。
更详细的说明见:http://blog.sina.com.cn/s/blog_b3facf740101e3c7.html
intNumberOfFields() const 返回结构体域个数
intElementSize() const 返回mwArray阵列元素大小
intCompareTo(const mwArray& arr)const对比两个mwArray阵列
boolIsSparse()const 判断是否Sparse阵列
boolIsNumeric()const 判断是否是数值阵列
boolIsEmpty()const 判断是否是空阵列
boolIsComplex()const 判断是否复型阵列
boolEquals(const mwArray& arr)const 判断两个阵列是否相同
3.我使用的代码
//输入,文件名,用于载入文件
std::string SFilename;
const mwArray Filename(SFilename.c_str());
mwArray topic_numM(1,5,mxINT8_CLASS);
double b[] = {5,4,3,6,8};
topic_numM.SetData(b,5);
//输出,用于获取数组
int OutNorNum =530;
int OutabNorNum =33;
mwArray Normal;
mwArray x_Abnorm_index;
函数....................................
double* Ptrue = new double[OutNorNum];
int* Indexfalse= new int [OutabNorNum];
double* Pfalse = new double[OutNorNum];
Normal.GetData(Ptrue,OutNorNum);//此句 导致程序崩溃!越界
x_Abnorm_index.GetData(Indexfalse,OutabNorNum);//此句 导致程序崩溃!超出下标
mwArray与C++接口相关推荐
- 转 Java知识——精华总结
一.java概述与基础知识 1.何为编程? 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 为了使计算机能够理解人的意图,人类就必须要将需解决的问题的思路. ...
- 编程资料 -C# 多线程
编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...
- 编程资料 -C# 多线程 1
编程资料 - 多线程 C#多线程编程实例实战 作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996 单个写入程序/多个阅读程序在.Net ...
- 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术
1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...
- Matlab与C/C++混合编程接口及应用
http://www.cnblogs.com/lidabo/archive/2012/08/24/2654148.html 在参考文献基础上.补充和完善了. Matlab与C/C++混合编程接口及应用 ...
- 产生的DLL (VS2005, MATLAB7.5, mwArray)
from: http://www.simwe.com/forum/thread-801187-1-1.html 程序中使用MATLAB编译产生的DLL (VS2005, MATLAB7.5, mwAr ...
- Java程序调用MATLAB接口
Java程序调用MATLAB接口 文章目录 Java程序调用MATLAB接口 一.注意事项 二.环境安装 三.MATLAB如何生成JAR包 四.MATLAB生成的JAR包如何引入到Java程序中 五. ...
- java中没有直接调用matlab的接口函数
java中没有直接调用matlab的接口函数,在通常的情况下我们是通过借用C++作为中间过程来实现的,使用C++主要是用c与matlab的结构实现c调用matlab的功能,将这些功能函数封装成dll文 ...
- 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...
最新文章
- python ocr中文识别库 tesseract安装及问题处理
- python主要运用于-python主要应用领域有哪些?看这一篇就够了
- mongodb first
- VC++ MFC DLL动态链接库编写详解
- C++paranthesis matching括号匹配的算法(附完整源码)
- 高级浏览器-SRWare Iron 29.0.1600.0 版本发布
- java 视频监控 分屏ui_视频监控网页ActiveX视频分屏播放控件开发
- Linux 用C/C++创建新文件并写入内容
- 二分查找 java代码实现
- 干货 | 你是不是希望一月入门深度学习,三月中一篇顶会?-- 关于做科研的态度和方法的一点感想...
- linux npm 使用介绍
- 基本排序算法(冒泡,选择(希尔),插入,快速,归并,堆,二分查找)
- c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b....
- 在c语言中作为字符串结束标志是什么,字符串的结束标志是什么?
- 区块链 入门 基础知识
- java scavenge_Java虚拟机(JVM)垃圾回收器Parallel Scavenge收集器 - Break易站
- SCSI与USB的关系
- 墨菲定律 Murphy’s Law
- MDF和DHF、DMR、DHR三者差异?注册与备案文件?
- 塔尔斯基学派代表作—模型论(教科书)