Размещения главного строкой и главного массива столбца

Элементы массива могут храниться в главном столбцом размещении или главном строкой размещении. Для массива, сохраненного в главном столбцом размещении, элементы столбцов непрерывны в памяти. В главном строкой размещении элементы строк непрерывны. Размещение массивов также называется порядком, форматом и представлением. Порядок, в котором хранятся элементы, может быть важен для интегрирования, удобства пользования и производительности. Определенные алгоритмы выполняют лучше на данных, хранимых в особом порядке.

Языки программирования и среды обычно принимают размещение единого массива для всех данных. MATLAB® и Фортран используют главное столбцом размещение по умолчанию, тогда как C и C++ используют главное строкой размещение. С MATLAB Coder™ можно сгенерировать код C/C++, который использует главное строкой размещение или главное столбцом размещение. Смотрите Генерируют Код Который Размещение Главного массива строки Использования.

Устройство хранения данных массивов в памяти компьютера

Память компьютера хранит данные с точки зрения одномерных массивов. Например, когда вы объявляете 3х3 матрицу, программное обеспечение хранит эту матрицу как одномерный массив с девятью элементами. По умолчанию MATLAB хранит эти элементы размещением главного массива столбца. Элементы каждого столбца непрерывны в памяти.

Рассмотрите матричный A:

A =
    1   2   3
    4   5   6
    7   8   9

Матричный A представлен в памяти по умолчанию с этим расположением:

     1     4     7     2     5     8     3     6     9

В размещении главного массива строки язык программирования хранит элементы строки непрерывно в памяти. В главном строкой размещении элементы массива хранятся как:

     1     2     3     4     5     6     7     8     9

N-мерные массивы могут также храниться в главном столбцом или главном строкой размещении. В главном столбцом размещении элементы от первой (крайней левой) размерности или индекса непрерывны в памяти. В главном строкой элементы от последней (самой правой) размерности или индекса непрерывны.

Преобразования между различными размещениями массивов

Когда вы смешиваете главные строкой данные и главные столбцом данные в том же коде, преобразования размещения массивов необходимы. Например, можно сгенерировать код, который включает главные строкой и главные столбцом функциональные специализации. Функциональные специализации используют один тип размещения массивов для всего входа, выводят, и внутренние данные. Когда передающие данные между функциями, генератор кода автоматически вставляет преобразования размещения массивов по мере необходимости. Входные и выходные данные к сгенерированным MEX-функциям также преобразованы по мере необходимости.

Для двумерных данных транспонируйте операции, преобразовывают данные между главным строкой размещением и главным столбцом размещением. Рассмотрите транспонированную версию A:

A' =
    1    4    7
    2    5    8
    3    6    9

Главное столбцом размещение A' совпадает с главным строкой размещением A. (Для комплексных чисел, использование преобразований размещения массивов несопряженное транспонируют.)

Смотрите также

| | |

Похожие темы