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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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矩阵中元素的个数。所以重排后矩阵元素个数必须相同,不然多出的那一个或少一个元素咋办。。。 参考技术A 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))必须一样。

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

matlab中的reshape命令有啥数学意义?

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

参考技术A 给你个例程吧:

x=[1,2,3;4,5,6];
y=reshape(x,1,[]);
z=reshape(x,3,2);

最后结果:
x=1 2 3
4 5 6

y=1 4 2 5 3 6

z=1 5
4 3
2 6

matlab里面矩阵是按列存储的,即先存第一列,然后第二列....本回答被提问者采纳
参考技术B reshape函数用于重新调整矩阵的行数、列数、维数,但是元素个数不变。
在matlab命令窗口中键入doc reshape或help reshape即可获得该函数的帮助信息。
调用格式:
  B = reshape(A,m,n)
  返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数不等于m*n, 则会引发错误。
  B = reshape(A,m,n,p,...)
  返回一个和A具有相同元素的n维 数组。但B的尺寸是m*n*p*...,m*n*p*...必须和 prod(size(A))相等。即A和B元素个数相等。
  B = reshape(A,[m n p ...])
  B = reshape(A,...,[],...)
  B = reshape(A,siz)
  相关函数: shiftdim, squeeze, circshift, permute, repmat
参考技术C reshape函数重新调整矩阵的行数、列数、维数追问

按照reshape的调整规律,能解决什么具体问题吗?
麻烦给个例子。。

以上是关于matlab中reshape函数中把A中元素进行重塑成m×n×p×…的矩阵是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

matlab中的reshape命令有啥数学意义?

matlab中的reshape命令?

Matlab-重构和重新排列数组

matlab中reshape是啥意思

MATLAB使用reshape函数的时候出了问题 要执行 RESHAPE,请勿更改元素数目.

matlab问题,关于unique函数