初用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函数来读入文本文件中的数据到矩阵。
数据的读入顺序都是按照文本的顺序,一个接一个的读。
行优先:存储的矩阵模式与文本排列的模式一致
列优先:存储的矩阵模式为,按照列的格式存储,一列存满了,接着存储第二列。
时间: 2024-10-09 10:26:35