Упорядоченные по строкам и упорядоченные по столбцам размещения массивов

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

Языки программирования и среды обычно принимают размещение единого массива для всех данных. 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. (Для комплексных чисел, использование преобразований размещения массивов несопряженное транспонируют.)

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

| | |

Похожие темы