изменение

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

Синтаксис

B = reshape(A,sz)
B = reshape(A,sz1,...,szN)

Описание

пример

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-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

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

свернуть все

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | ячейка | datetime | длительность | calendarDuration
Поддержка комплексного числа: Да

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

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

Пример: изменитесь (A, [3,2])

Пример: изменитесь (A, [6,4,10])

Пример: изменитесь (A, [5,5,5,5])

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

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

Пример: изменитесь (A, 3,2)

Пример: изменитесь (A, 6, [], 10)

Пример: изменитесь (A, 2,5,3, [])

Пример: изменитесь (A, 5,5,5,5)

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

свернуть все

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

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | ячейка | datetime | длительность | calendarDuration

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

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

Была ли эта тема полезной?