reshape

Измените символьный массив

Описание

пример

reshape(A,n1,n2) возвращает n1- n2 матрица, которая имеет те же элементы как A. Элементы взяты по столбцам из A заполнить элементы n1- n2 матрица.

пример

reshape(A,n1,...,nM) возвращает n1- ...- nM массив, который имеет те же элементы как A. Элементы взяты по столбцам из A заполнить элементы n1- ...- nM массив.

пример

reshape(A,...,[],...) позволяет вам представлять значение размера заполнителем [] при вычислении величины того значения размера автоматически. Например, если A имеет размер, 2 на 6, затем reshape(A,4,[]) возвращается 4 3 массив.

пример

reshape(A,sz) изменяет A в массив с размером, заданным sz, где sz вектор.

Примеры

Измените символьный вектор-строку в вектор-столбец

Измените V, который является вектором-строкой 1 на 4, в 4 1 вектор-столбец Y. Здесь, V и Y должен иметь то же число элементов.

Создайте векторный V.

syms f(x) y
V = [3 f(x) -4 y]
V =
[ 3, f(x), -4, y]

Измените V в Y.

Y = reshape(V,4,1)
Y =
   3
f(x)
  -4
   y

В качестве альтернативы используйте Y = V.' где .' несопряженное, транспонируют.

Измените символьную матрицу

Измените символьную матрицу 2 на 6 M в 4 3 матрицу.

M = sym([1 9 4 3 0 1; 3 9 5 1 9 2])
N = reshape(M,4,3)
M =
[ 1, 9, 4, 3, 0, 1]
[ 3, 9, 5, 1, 9, 2]
 
N =
[ 1, 4, 0]
[ 3, 5, 9]
[ 9, 3, 1]
[ 9, 1, 2]

M и N должен иметь то же число элементов. reshape чтения M по столбцам заполнить элементы N по столбцам.

В качестве альтернативы используйте вектор размера, чтобы задать размерности измененной форму матрицы.

sz = [4 3];
N = reshape(M,sz)
N =
[ 1, 4, 0]
[ 3, 5, 9]
[ 9, 3, 1]
[ 9, 1, 2]

Автоматически установите размерность измененной форму матрицы

Когда вы заменяете размерность на заполнителя [], reshape вычисляет необходимую величину той размерности, чтобы изменить форму матрицы.

Создайте матричный M.

M = sym([1 9 4 3 0 1; 3 9 5 1 9 2])
M =
[ 1, 9, 4, 3, 0, 1]
[ 3, 9, 5, 1, 9, 2]

Измените M в матрицу с тремя столбцами.

reshape(M,[],3)
ans =
[ 1, 4, 0]
[ 3, 5, 9]
[ 9, 3, 1]
[ 9, 1, 2]

reshape вычисляет, что для измененной форму матрицы трех столбцов нужны четыре строки.

Измените форму построчной матрицы

Измените форму матрицы, построчной путем перемещения результата.

Создайте матричный M.

syms x
M = sym([1 9 0 sin(x) 2 2; NaN x 5 1 4 7])
M =
[   1, 9, 0, sin(x), 2, 2]
[ NaN, x, 5,      1, 4, 7]

Измените M построчный путем перемещения результата.

reshape(M,4,3).'
ans =
[ 1, NaN,      9, x]
[ 0,   5, sin(x), 1]
[ 2,   4,      2, 7]

Обратите внимание на то, что .' возвращает несопряженное транспонирование в то время как ' возвращает сопряженное транспонирование.

Измените трехмерный массив в 2D матрицу

Измените 3 3 2 массивами M в 9 2 матрицу.

M имеет 18 элементов. Поскольку 9 2 матрица также имеет 18 элементов, M может быть изменен в него. Создайте M.

syms x
M = [sin(x) x 4; 3 2 9; 8 x x];
M(:,:,2) = M'
M(:,:,1) = 
[ sin(x), x, 4]
[      3, 2, 9]
[      8, x, x]
M(:,:,2) = 
[ sin(conj(x)), 3,       8]
[      conj(x), 2, conj(x)]
[            4, 9, conj(x)]

Измените M в 9 2 матрицу.

N = reshape(M,9,2)
N =
[ sin(x), sin(conj(x))]
[      3,      conj(x)]
[      8,            4]
[      x,            3]
[      2,            2]
[      x,            9]
[      4,            8]
[      9,      conj(x)]
[      x,      conj(x)]

Использование изменяется, чтобы Разбить Массивы

Используйте reshape вместо циклов, чтобы разбить массивы для дальнейшего расчета. Используйте reshape разбивать векторный V найти продукт каждых трех элементов.

Создайте векторный V.

syms x
V = [exp(x) 1 3 9 x 2 7 7 1 8 x^2 3 4 sin(x) x]
V =
[ exp(x), 1, 3, 9, x, 2, 7, 7, 1, 8, x^2, 3, 4, sin(x), x]

Задайте 3 для количества строк. Используйте заполнителя [] для количества столбцов. Это позволяет reshape автоматически вычислите количество столбцов, требуемых для трех строк.

M = prod( reshape(V,3,[]) )
M =
[ 3*exp(x), 18*x, 49, 24*x^2, 4*x*sin(x)]

reshape вычисляет, что пять столбцов требуются для матрицы трех строк. prod затем множители элементы каждого столбца, чтобы возвратить результат.

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

свернуть все

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

Размерности измененной форму матрицы в виде разделенных от запятой скаляров. Например, reshape(A,3,2) возвращает 3-на-2 матрицу. Число элементов в выходном массиве задано n1,n2 должно быть равно numel(A).

Размерности измененного размерность массива в виде разделенных от запятой скаляров. Например, reshape(A,3,2,2) возвращает 3 матрицей 2 на 2. Число элементов в выходном массиве задано n1,...,nM должно быть равно numel(A).

Размер измененного размерность массива в виде числового вектора. Например, reshape(A,[3 2]) возвращает 3-на-2 матрицу. Число элементов в выходном массиве задано sz должно быть равно numel(A).

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

|

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