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]

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

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

Создайте матричный 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

Для просмотра документации необходимо авторизоваться на сайте