涉及到在计算机中使用矩阵时,首先会碰到存储矩阵的问题。因为计算机存储空间是先后有序的,如何存储A[m*n]的m*n个元素是个问题,一般有两种:按行优先存储和按列优先存储。
row-major:存成a11,a12,...,amn的顺序。
PASCAL, C/C++,, Python语言中,数组按行优先顺序存储。 行优先顺序推广到多维数组,可规定为先排最右的下标。
column-major:存成a11,a21,...,amn的顺序。
FORTRAN语言,Matlab中,数组按列优先顺序存储。
列优先顺序推广到多维数组,可规定为先排最左的下标。
For example:
序列 A = [1,2,3,4],用Matlab 和 Python 分别reshape为2*2大小:
Matlab中 reshape(A, [2 2]), 得到 [[1 3] [2 4]]
Python中 A.reshape(2,2), 得到[[1 2] [3 4]]
Ref:
http://en.wikipedia.org/wiki/Row-major_order
http://www.cnblogs.com/soroman/archive/2008/03/21/1115571.html