matlab中reshape函数中把A中元素进行重塑成m×n×p×…的矩阵是什么意思

matlab中B = reshape(A,m,n,p,...) or B = reshape(A,[m n p ...]) 把A中元素进行重塑成m×n×p×…的矩阵,特别地,指定的维数m×n×p×…的积必须与prod(size(A))相同。这句话不是很懂,m×n×p×…的矩阵是什么矩阵?prod(size(A))又是什么?

m×n是二维矩阵,m×n×p是三维矩阵,m×n×p×…是多维矩阵,具体是什么矩阵,看具体的问题。prod(size(A))是求矩阵A各维的乘积,也就是A矩阵中元素的个数。所以重排后矩阵元素个数必须相同,不然多出的那一个或少一个元素咋办。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
a = rand(2,3,4);
prod(size(a))

b = reshape(a, 4, 6);

a是一个2x3x4的矩阵,size(a)就是[2 3 4],即a的维度

prod是求向量的乘积,所以prod(size(a))就是24

这里,b是把a矩阵reshape成4x6,要求prod(size(b))也是24,即prod(size(a))和prod(size(b))必须一样。

本回答被提问者和网友采纳
相似回答