主要内容

行存储和列存储阵列布局

一个数组的元素可以存储在列为主的布局或行布局。对存储在数组列为主的布局,列的元素在内存中是连续的。行布局,元素的行是连续的。阵列布局也被称为命令,格式,和代表性。元素的顺序存储的集成可能是重要的,可用性和性能。某些算法执行更好的数据存储在一个特定的顺序。

编程语言和环境通常假定一个数组中所有数据的布局。MATLAB®和Fortran默认使用列为主的布局,而C和c++使用行布局。与MATLAB编码器™,您可以生成C / c++代码,使用行布局或列为主的布局。看到生成代码,使用行阵列布局

数组存储在计算机内存

计算机内存存储数据的一维数组。举个例子,当你声明一个3×3的矩阵,这个矩阵软件商店与九个一维数组元素。默认情况下,MATLAB商店这些元素与一系列列为主的布局。每一列的元素在内存中是连续的。

考虑到矩阵一个:

一个= 1 2 3 4 5 6 7 8 9

矩阵一个在内存中表示默认了这样的安排:

1 4 7 2 5 8 3 6 9

在存储阵列布局,编程语言将连续行元素存储在内存中。行布局,数组的元素被存储为:

1 2 3 4 5 6 7 8 9

n维数组也可以存储在列为主或行布局。在列为主的布局,从第一个元素(最左边的)维度或指标是连续的在内存中。从最后一行的元素(右边的)维度或指标是连续的。

不同阵列布局之间的转换

当你混合存储数据和列为主的数据在同一代码,阵列布局转换是必要的。例如,您可以生成代码,包括行和列为主的功能专门化。功能专门化使用一种类型的数组布局对所有输入、输出和内部数据。当函数之间传递数据,代码生成器自动插入数组布局转换。输入和输出数据生成的墨西哥人功能也会根据需要转换。

二维数据转置操作之间转换数据行布局和列为主的布局。考虑的转置版本一个:

一个“= 1 4 7 2 5 8 3 6 9

的列为主的布局一个“匹配的行布局一个。(复数,阵列布局转换使用nonconjugate转置)。

另请参阅

|||

相关的话题