Измените размерность символьного массива
reshape(A,n1,n2)
reshape(A,n1,...,nM)
reshape(A,...,[],...)
reshape(A,sz)
reshape(
позволяет вам представлять значение размера с заполнителем A
,...,[],...)[]
при вычислении значения того значения размера автоматически. Например, если A
имеет размер, 2 на 6, то reshape(A,4,[])
возвращается 4 3 массив.
Измените 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.'
, где .'
является несопряженным, транспонируют.
Измените символьный матричный M
2 на 6 в 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]
Обратите внимание на то, что .'
возвращает несопряженное транспонирование, в то время как '
возвращает сопряженное транспонирование.
Измените 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
затем множители элементы каждого столбца, чтобы возвратить результат.