列优先与行优先

初用matlab与c/c++混合编程的人,对于列优先和行优先有一些生疏。

看了wiki,发现:行优先和列优先指的是行优先存储和列优先存储。


wiki的解释:

以一个定义为为M的3x3矩阵为例:列优先存储指的是MATLAB先保存第一列的3个元素,然后保存第二列的,最后保存第三列的元素,从而这9个矩阵元素在MATLAB中的排序是从1到9,所以在调用矩阵元素时,M(2)指的是第一列的第二个元素,M(6)指的是第二列第三个元素(当然这两个元素也可以用二维的方式调用,M(2)对应M(1,2),M(6)对应M(2,3));行优先存储则刚好相反,先保存第一行的3个元素,再保存第二行和第三行的元素。


如,我们调用matlab的fscanf函数来读入文本文件中的数据到矩阵。

数据的读入顺序都是按照文本的顺序,一个接一个的读。

行优先:存储的矩阵模式与文本排列的模式一致

列优先:存储的矩阵模式为,按照列的格式存储,一列存满了,接着存储第二列。

你可能感兴趣的:(列优先与行优先)