reshape

reshape函数是MATLAB中将指定的矩阵变换成特定维数矩阵一种函数,且矩阵中元素个数不变,函数可以重新调整矩阵的行数、列数、维数。函数语法为B = reshape(A,size)是指返回一个和A元素相同的n维数组,但是由向量size来决定重构数组维数的大小。

B = reshape(A,m,n)

B = reshape(A,m,n,p,...)

B = reshape(A,[m n p ...])

B = reshape(A,...,[ ],...)

B = reshape(A,size)

B = reshape(A,m,n)

返回一个燥永灶m*n的矩阵B, B中元素是按列从A中得到的。恋背炒如果A中元素个数没有m*n个, 则会引浆匪局渗发错误。

B = reshape(A,m,n,p,...)和B = reshape(A,[m n p ...])

返回一个和A具有相同元素的N(不是上面的参数n)维数组。但B的尺寸是m*n*p*...,m*n*p*...必须和prod(size(A))相等。即A和B元素个数相察嘱等。

B = reshape(A,...,[ ],...)

计算由占位符[ ]所表示的尺寸的长度,这样维朵胶户度的乘积等价于prod(size(A))。而prod(size(A))的值必须能被指定维数的乘积所整除。在这里面占位符[ ] 只能使用一次。

调整一个3*4矩阵到2*6矩阵(内容与图册相同):

A =

1 4 7 10

2 5 8 11

3 6 9 12

B = reshape(A,2,6)

B =

1 3 5 7 9 11

2 4 6 8 10 12

B = reshape(A,2,[])

B =

1 3 5 7 9 11

2 4 6 8 10 12

repmat函数与reshape函数功能比较:

(1)repmat函数

repmat函数主付淋戏葛要是用于快速的产生一个矩阵,它的用法一询多雅般有下面几种:

B = repmat(A,M,N)

矩阵B是矩阵A的复制品,其中B的维度为[size(A,1)*M, size(A,2)*N]。写成repmat(A,[M,N])也是可以的;如果写成repmat(A,N),那么它等价于repmat(A,N,N)或者repmat(A,[N,N])。

(2)示例

repmat(magic(2),2)

ans =

相关词汇