matlab中reshape命令是把指定的矩阵改变形状,但是元素个数不变。
例如,行向量:
a = [1 2 3 4 5 6]。
执行下面语句把它变成3行2列:
b = reshape(a,3,2)。
执行结果:
b =
1 4
2 5
3 6
若a=[1 2 3
4 5 6
7 8 9]
使用reshpe后想得到b=[1 2 3 4 5 6 7 8 9]。
只需要将a 转置一下就可以了(因为matlab是按列读取的,他会按你分多少行就按列读取多少个数,并不是随机的):
b=reshape(a',1,9)。
reshape就是把指定的矩阵改变形状,但是元素个数不变,
例如,行向量:
a = [1 2 3 4 5 6]。
执行下面语句把它变成3行2列:
b = reshape(a,3,2)。
执行结果:
b =
1 4
2 5
3 6
扩展资料:
调用格式说明
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元素个数相等。
参考资料来源:百度百科-reshape。
例如reshape(a,3,3),就是把a矩阵变成3*3矩阵,变换之前一定要把个数计算好。
1、B = reshape(A,m,n)。
返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数没有m*n个, 则会引发错误。
2、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元素个数相等。
3、B = reshape(A,...,[ ],...)
计算由占位符[ ]所表示的尺寸的长度,这样维度的乘积等价于prod(size(A))。而prod(size(A))的值必须能被指定维数的乘积所整除。在这里面占位符[ ] 只能使用一次。
扩展资料
reshape函数作为MATLAB中将指定的矩阵变换成特定维数矩阵一种函数,且矩阵中元素个数不变,函数可以重新调整矩阵的行数、列数、维数。函数语法为B = reshape(A,size)代表返回一个和A元素相同的n维数组,但是由向量size来决定重构数组维数的大小。
repmat函数与reshape函数功能比较:repmat函数主要是用于快速产生一个矩阵,它的用法一般有下面几种:B = repmat(A,M,N)矩阵B是矩阵A的复制品,其中B的维度为[size(A,1)*M,size(A,2)*N]。
参考资料来源:百度百科-reshape。
1、首先需要知道matlab中将一维数组转化为二维矩阵的,使用的是reshape函数,可以在命令行窗口help reshape,看一下函数用法,如下图所示。
2、输入a=[1 2 3 4 5 6 7 8],创建一个一维数组a,如下图所示。
3、接着输入reshape(a,2,4),将一维数组转化为2行4列的二维矩阵,如下图所示。
4、按回车键之后,可以看到a数组转化为二维矩阵了,如下图所示。
5、最后输入reshape(a,4,2),可以转化为4行2列的矩阵,需要注意的一维数组需要和转化的二维矩阵元素相等,如下图所示。
原文地址:http://www.qianchusai.com/matlab%E4%B8%ADreshape%E7%94%A8%E6%B3%95.html