MATLAB主要是矩阵的操作,其中矩阵的转换方式有很多种,维度转换也是常见的应用。如n*1的矩阵转化为1*n的,当然这个直接转置就可以了,但是转化为n/2 * 2的就需要用到这里的reshape函数了。
reshape函数的原型如下:
B = reshape(A,m,n)
B = reshape(A,[m n])
B = reshape(A,m,n,p,...)
B = reshape(A,[m n p ...])
B = reshape(A,...,[],...)
A是原矩阵,m n p和...的表示各个维度的深度。
B = reshape(A,m,n)
B = reshape(A,[m n])
这两个函数的实现是一样的,都是将A转化为m*n的矩阵,示例如下
这里注意MATLAB的矩阵是按照列排列的。
B = reshape(A,m,n,p,...)
B = reshape(A,[m n p ...])
将reshape扩展到了多维的操作,道理还上面是一样的。就不做示例了。
B = reshape(A,...,[],...)
这个函数里面多了[],这个地方代表占位符,意思是该维深度取决于其他维度。例如: