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×…的矩阵是啥意思的主要内容,如果未能解决你的问题,请参考以下文章