汪帮主卫星遥感空间分享 http://blog.sciencenet.cn/u/zjwang 湖北鄂州人,2011年博士毕业于吉林大学。现从事卫星遥感技术工作。

博文

CWzjWAData类:c++数组与MATLAB数组相互转换

已有 10310 次阅读 2010-5-23 10:52 |个人分类:计算程序|系统分类:教学心得| 数组

c++与MATLAB混合编程的时候,如果传递的数据是二维及以上数组时,由于C是行优先而MATLAB是列优先的原故,会导致数据排列不正确,导致程序错误。

可以传递之前和传递之后进行转置,但是要注意,数据虽然不正确,但是维数信息是正确的,所以转置前后的行和列要保持不变,仅仅调用一下转置函数估计还不能达到目的。

现提供一个CWzjWAData类,主要目的是为了定义一种数组数据类型文件,并进行读写操作。文件本身保存了维数、数据类型等额外信息,不需要额外的数据说明,可以在多种环境中无需数据格式说明的前提下传递数据,如C++,MATLAB,FORTRAN,IDL,C#等。

其中包含有C++数组与MATLAB数组的转换函数,目前支持三维及以下数组的转换。
C++数组转换为MATLAB数组
template <class T>
T* cppPtr2mtPtr(watDIM dim, watPDIMS dims, T* cppPtr)  
MATLAB数组转换为C++数组
template <class T>
T* mtPtr2cppPtr(watDIM dim, watPDIMS dims, T* mtArr)

CWzjWAData类源代码下载:http://www.163pan.com/files/a0p00100p.html
文件名称:
    CwzjWAData.tar.gz
文件介绍:
    CWzjWAData类C++源代码

==============================

https://blog.sciencenet.cn/blog-43777-327691.html

上一篇:linux(ubuntu) IDL7.1 iplot时崩溃的解决办法
下一篇:基于MATLAB创建HDF文件及向存在HDF中追加数据
收藏 IP: .*| 热度|

1 金小伟

发表评论 评论 (3 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-26 10:32

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部