C++向matlab engine传递二维数组,互为转置

本文介绍了C++中二维数组的存储顺序与MATLAB的不同,以及如何通过MATLAB Engine在两者间传递数组时处理转置问题。通过一个实例展示了C++读取数据并传递给MATLAB,最终MATLAB接收到的是C++数组的转置。参考了多个来源以说明这个问题。
摘要由CSDN通过智能技术生成

在C/C++中,二维数组是按行排列的。即:先存放a[0]行,再存放a[1]行,接着是存放a[2]行,等等。假设这些行中,每行有N个元素,那么也是依次存放。而在Matlab中,以矩阵方式存储数据,它是按列优先排列的。即:先存放a[0]列,再存放a[1]列,接着是存放a[2]列,等等。比如一个三行四列的二维数组a,如下:

    a[0][0], a[0][1], a[0][2], a[0][3]
    a[1][0], a[1][1], a[1][2], a[1][3]
    a[2][0], a[2][1], a[2][2], a[2][3]

C++将它存在内存中的顺序为:a[0][0], a[0][1], a[0][2], a[0][3],a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1], a[2][2], a[2][3]

Matlab将它存的顺序为:a[0][0],a[1][0], a[2][0],

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值