reshape

Перестроить массив

Описание

пример

B = reshape(A,sz) изменяет форму A используя вектор size, sz, для определения size(B). Для примера, reshape(A,[2,3]) изменяет форму A в матрицу 2 на 3. sz должны содержать не менее 2 элементов и prod(sz) должно быть то же, что и numel(A).

пример

B = reshape(A,sz1,...,szN) изменяет форму A в sz1-by- ...-by- szN массив, где sz1,...,szN указывает размер каждой размерности. Можно задать один размер размерности [] чтобы размер размерности был автоматически вычислен таким образом, чтобы количество элементов в B соответствует количеству элементов в A. Для примера, если A - матрица 10 на 10, затем reshape(A,2,2,[]) изменяет форму 100 элементов A в массив 2 на 2 на 25.

Примеры

свернуть все

Перестроите вектор 1 на 10 в матрицу 5 на 2.

A = 1:10;
B = reshape(A,[5,2])
B = 5×2

     1     6
     2     7
     3     8
     4     9
     5    10

Измените форму квадратной матрицы 4 на 4 в матрицу, которая имеет 2 столбца. Задайте [] для первой размерности, которое позволяет reshape автоматическое вычисление соответствующего количества строк.

A = magic(4)
A = 4×4

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

B = reshape(A,[],2)
B = 8×2

    16     3
     5    10
     9     6
     4    15
     2    13
    11     8
     7    12
    14     1

Результатом является матрица 8 на 2, которая поддерживает то же количество элементов, что и исходная матрица. Элементы в B также поддерживать свой столбцовый порядок от A.

Измените форму массива нулей 3 на 2 на 3 в матрицу 9 на 2.

A = zeros(3,2,3);
B = reshape(A,9,2)
B = 9×2

     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0
     0     0

Входные параметры

свернуть все

Входной массив, заданный как векторный, матричный или многомерный массив.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | struct | datetime | duration | calendarDuration
Поддержка комплексного числа: Да

Выходной размер, заданный как вектор-строка из целых чисел. Каждый элемент sz указывает размер соответствующей размерности в B. Вы должны задать sz так, чтобы количество элементов в A и B те же самые. То есть prod(sz) должно быть то же, что и numel(A).

За пределами второго измерения выход, B, не отражает последующие измерения с размером 1. Для примера, reshape(A,[3,2,1,1]) создает матрицу 3 на 2.

Пример: reshape(A,[3,2])

Пример: reshape(A,[6,4,10])

Пример: reshape(A,[5,5,5,5])

Размер каждой размерности, заданный как два или более целых чисел с самое большее одним [] (необязательно). Вы должны задать не менее 2 размерности размеров, и самое большее одна размерность размер может быть задан как [], который автоматически вычисляет размер этой размерности, чтобы убедиться, что numel(B) соответствует numel(A). Когда вы используете [] чтобы автоматически вычислить размер размерности, размерностей, которые вы задаете явно, должны разделиться равномерно на количество элементов в матрице входа, numel(A).

За пределами второго измерения выход, B, не отражает последующие измерения с размером 1. Для примера, reshape(A,3,2,1,1) создает матрицу 3 на 2.

Пример: reshape(A,3,2)

Пример: reshape(A,6,[],10)

Пример: reshape(A,2,5,3,[])

Пример: reshape(A,5,5,5,5)

Выходные аргументы

свернуть все

Измененный массив, возвращенный как вектор, матрица, многомерный массив или массив ячеек. Тип данных и количество элементов в B совпадают с типом данных и количеством элементов в A. Элементы в B сохранить их столбчатое упорядоченное расположение от A.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration | calendarDuration

Расширенные возможности

..

Генерация HDL-кода
Сгенерируйте Verilog и VHDL код для FPGA и ASIC проектов с использованием HDL- Coder™.

См. также

| | | |

Представлено до R2006a