Перестроить массив
изменяет форму 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
A
- Входной массивВходной массив, заданный как векторный, матричный или многомерный массив.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| struct
| datetime
| duration
| calendarDuration
Поддержка комплексного числа: Да
sz
- Размер выходного сигналаВыходной размер, заданный как вектор-строка из целых чисел. Каждый элемент 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])
sz1,...,szN
- Размер каждой размерности[]
(необязательно)Размер каждой размерности, заданный как два или более целых чисел с самое большее одним []
(необязательно). Вы должны задать не менее 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
- Измененный массивИзмененный массив, возвращенный как вектор, матрица, многомерный массив или массив ячеек. Тип данных и количество элементов в B
совпадают с типом данных и количеством элементов в A
. Элементы в B
сохранить их столбчатое упорядоченное расположение от A
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| datetime
| duration
| calendarDuration
Эта функция поддерживает длинные массивы с ограничениями:
Изменение формы tall dimension (simension one) не поддерживается. Первый вход размерности должен быть всегда пустым, например reshape(X,[],M,N,...)
.
Для получения дополнительной информации см. Раздел «Длинные массивы для данных , которых не помещаютсь в память,».
Указания и ограничения по применению:
Если вход является пустым массивом ячеек во время компиляции, то аргументы в size должны быть постоянными.
Аргументы в size должны иметь фиксированный размер.
Смотрите информацию о генерации кода функций тулбокса (MATLAB Coder) в разделе «Ограничения переменных размеров».
Для разреженных матриц, reshape
функция не поддерживает конечные таковые, как входы после первых двух размерностей.
Указания и ограничения по применению:
Если вход является пустым массивом ячеек во время компиляции, то аргументы в size должны быть постоянными.
Аргументы в size должны иметь фиксированный размер.
Для разреженных матриц, reshape
функция не поддерживает конечные таковые, как входы после первых двух размерностей.
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.