exponenta event banner

измениться

Изменить форму массива

Описание

пример

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

пример

B = reshape(A,sz1,...,szN) изменяется A в sz1около-...около-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 с использованием Coder™ HDL.

См. также

| | | |

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