函数 reshape 的用法

请问:我在MATLAB编程中遇到了一个问题,函数reshape的用法我就是没有弄明白,希望哪位高手,详细地帮忙解答一下。谢谢... 请问:我在MATLAB编程中遇到了一个问题,函数reshape的用法我就是没有弄明白,希望哪位高手,详细地帮忙解答一下。谢谢 展开
 我来答
郭欢nb
高粉答主

2019-09-07 · 繁杂信息太多,你要学会辨别
知道答主
回答量:5
采纳率:100%
帮助的人:1105
展开全部

1、B = reshape(A,m,n)

返回一个m*n的矩阵B, B中元素是按列从A中得到的。如果A中元素个数没有m*n个, 则会引发错误。

2、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元素个数相等。

3、B = reshape(A,...,[ ],...)

计算由占位符[ ]所表示的尺寸的长度,这样维度的乘积等价于prod(size(A))。而prod(size(A))的值必须能被指定维数的乘积所整除。在这里面占位符[ ] 只能使用一次。



扩展资料

reshape函数作为MATLAB中将指定的矩阵变换成特定维数矩阵一种函数,且矩阵中元素个数不变,函数可以重新调整矩阵的行数、列数、维数。函数语法为B = reshape(A,size)代表返回一个和A元素相同的n维数组,但是由向量size来决定重构数组维数的大小。

repmat函数与reshape函数功能比较:repmat函数主要是用于快速产生一个矩阵,它的用法一般有下面几种:B = repmat(A,M,N)矩阵B是矩阵A的复制品,其中B的维度为[size(A,1)*M,size(A,2)*N]。

参考资料来源:百度百科-reshape

挚爱和你共亨
推荐于2017-10-15 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.9万
采纳率:0%
帮助的人:1.1亿
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
is99kdf
推荐于2017-10-09 · TA获得超过133个赞
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
就是把指定的矩阵改变形状,但是元素个数不变,

例如,行向量:
a = [1 2 3 4 5 6]

执行下面语句把它变成3行2列:
b = reshape(a,3,2)

执行结果:
b =
1 4
2 5
3 6
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狄琪夫贞婉
2020-01-20 · TA获得超过3903个赞
知道大有可为答主
回答量:3090
采纳率:30%
帮助的人:191万
展开全部
是不是问
OpenGL
/
GLUT
方面的问题?
GLUT里
glutReshapeFunc(reshape);
定义
当窗的形状改变事件发生时
调用的处理函数
reshape。
shape
是形状。reshape
是当形状改变时,做些什么来修正窗内的图形显示。
这由程序员自己决定,例如,你可以考虑图形长宽尺度按窗的长宽变化,按比例缩放。你也可以考虑图形长宽尺度不变,....
下面是一个例子:
void
reshape(int
cur_w,
int
cur_h)
{
glClear(GL_COLOR_BUFFER_BIT
|
GL_DEPTH_BUFFER_BIT);
if
(cur_h
<=
0)
cur_h
=
10;
//
窗太小时处理
glViewport(0,0,
cur_w,
cur_h);
xfactor
=
(float)
glutGet(
GLUT_WINDOW_WIDTH
)
/
(float)
img_width;
//
按比例缩放
yfactor
=
(float)
glutGet(
GLUT_WINDOW_HEIGHT
)
/
(float)
img_height;
//
按比例缩放
glutPostRedisplay();
//
发送更新消息
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ikanchi
2006-05-17 · TA获得超过2917个赞
知道小有建树答主
回答量:665
采纳率:33%
帮助的人:0
展开全部
reshape: 可以对数组进行重组变形, Y = reshape(X,m,n) 前提条件 Y与X中所含的元素个数必须相等。则上述命令将X转为 m*n的矩阵。
A =[5 5 8 6;9 11 12 5];
B = reshape(A, 4, 2) % 4是新矩阵的列数,2是新矩阵的行数

B =

5 8

9 12

5 6

11 5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式