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转置一下就可以了:
b=reshape(a',1,9)
----------------------------------------------
matlab中的解释如下:
RESHAPE Change size. RESHAPE(X,M,N) returns the M-by-N matrix whose elements are taken columnwise from X. An error results if X does not have M*N elements. RESHAPE(X,M,N,P,...) returns an N-D array with the same elements as X but reshaped to have the size M-by-N-by-P-by-... M*N*P*... must be the same as PROD(SIZE(X)). RESHAPE(X,[M N P ...]) is the same thing. RESHAPE(X,...,[],...) calculates the length of the dimension represented by [], such that the product of the dimensions equals PROD(SIZE(X)). PROD(SIZE(X)) must be evenly divisible by the product of the known dimensions. You can use only one occurrence of []. In general, RESHAPE(X,SIZ) returns an N-D array with the same elements as X but reshaped to the size SIZ. PROD(SIZ) must be the same as PROD(SIZE(X)).