在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],