reshape

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

Описание

пример

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 с помощью HDL Coder™.

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

| | | |

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