matlab函数之reshape()
reshape - 重构数组
功能:
B = reshape(A, sz);
按矢量sz定义的维度(包括行数 列数 维数)重构矩阵A来得到矩阵B
实现原理
先将矩阵A先排列成一列(结果感受就是按列优先排列),再按照矢量sz定义大小的行数切割
结构及实例
A = rand(4,5)
0.3537 0.6694 0.6692 0.3119 0.8322
0.6230 0.1045 0.5429 0.9518 0.3994
0.6557 0.4872 0.5621 0.9596 0.4807
0.1019 0.2323 0.9449 0.1287 0.2518
1. B = reshape(A, m, n)
返回m * n的矩阵 (m:行数,n:列数)
B = reshape(A, 10, 2)
0.3537 0.5621
0.6230 0.9449
0.6557 0.3119
0.1019 0.9518
0.6694 0.9596
0.1045 0.1287
0.4872 0.8322
0.2323 0.3994
0.6692 0.4807
0.5429 0.2518
2. B = reshape(A, m, n, p)
返回m * n * p的矩阵(m:行数,n:列数, p:维度)
B = reshape(A, 5, 2, 2)B(:,:,1) =0.3537 0.1045
0.6230 0.4872
0.6557 0.2323
0.1019 0.6692
0.6694 0.5429B(:,:,2) =0.5621 0.1287
0.9449 0.8322
0.3119 0.3994
0.9518 0.4807
0.9596 0.2518
3. B = reshape(A, size)
返回和矢量size维度一致的矩阵
B = reshape(A, [2,5,2])
sz:[2,5,2]B(:,:,1) =
0.3537 0.6557 0.6694 0.4872 0.6692
0.6230 0.1019 0.1045 0.2323 0.5429B(:,:,2) =
0.5621 0.3119 0.9596 0.8322 0.4807
0.9449 0.9518 0.1287 0.3994 0.2518B = reshape(A, [1,5,2,2])
sz:[1,5,2,2]
B(:,:,1,1) =0.3537 0.6230 0.6557 0.1019 0.6694
B(:,:,2,1) =
0.1045 0.4872 0.2323 0.6692 0.5429
B(:,:,1,2) =
0.5621 0.9449 0.3119 0.9518 0.9596
B(:,:,2,2) =
0.1287 0.8322 0.3994 0.4807 0.2518
注意点
得到的矩阵B中的元素和A相同
排列顺序列优先(先按列取数据,再按照size维度先按列排列)
==>所以中间不管经过多少次reshape,最后只要size矢量大小和size(A)相同,就能还原回A。以以上的例子B = reshape(A, [2,5,2])来说,C = reshape(B, size(A))
C =
0.3537 0.6694 0.6692 0.3119 0.8322
0.6230 0.1045 0.5429 0.9518 0.3994
0.6557 0.4872 0.5621 0.9596 0.4807
0.1019 0.2323 0.9449 0.1287 0.2518
==> 和最初定义的A相同prod(sz)必须和numel(A)相同,即元素数量要相同,否则会报错
【说明】prod(sz): 矢量sz元素的乘积, numel(A): 数组A中元素个数(20))
矢量size至少包含2个元素,否则报错
如果应用中想按行顺序优先排列,可以先对A进行转置,即reshape(a`,sz),或者得到结果之后再转置
A =0.3537 0.6694 0.6692 0.3119 0.8322
0.6230 0.1045 0.5429 0.9518 0.3994
0.6557 0.4872 0.5621 0.9596 0.4807
0.1019 0.2323 0.9449 0.1287 0.2518
B = reshape(A’,[4,5])
B =0.3537 0.8322 0.9518 0.5621 0.2323
0.6694 0.6230 0.3994 0.9596 0.9449
0.6692 0.1045 0.6557 0.4807 0.1287
0.3119 0.5429 0.4872 0.1019 0.2518
注意到排列顺序是行优先
matlab函数之reshape()相关推荐
- 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用
粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...
- matlab2c使用c++实现matlab函数开发配置全解
全栈工程师开发手册 (作者:栾鹏) github: https://github.com/data-infra/matlab2c matlab2c动态链接库下载 matlab库函数大全 matlab2 ...
- opencv通过dll调用matlab函数,图片作为参数
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数 前文介绍了如何"csharp通过dll调用opencv函数,图片作为参数 ...
- MATLAB函数大全 .
http://pleasaunce.blog.sohu.com/94162301.html 网上看到的,很珍贵,怕人家删了,就自己考过来了 附录1 常用命令 附录1.1 管理用命令 函数名 功能描 ...
- MATLAB函数汇总
Matlab 函数参数汇总 MATLAB函数参考 附录1.1 管理用命令 函数名 功能描述 函数名 功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matla ...
- MATLAB 函数大全
附录1 常用命令 附录1.1 管理用命令 函数名 功能描述 函数名 功能描述 addpath 增加一条搜索路径 rmpath 删除一条搜索路径 demo 运行Matlab演示程序 type 列出.M文 ...
- 《数字图像处理》冈萨雷斯,Matlab函数汇总 .
<数字图像处理>冈萨雷斯,Matlab函数汇总 . 图像显示 colorbar 显示彩条 getimage 由坐标轴得到图像数据 ice(DIPUM) 交互彩色编辑 image 创建和显示 ...
- 非常全的 matlab 函数
一.常用对象操作:除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看. 2.who 可以查看当前工作空间变量名, who ...
- MATLAB 函数速查手册目录
第 1 章 MATLAB 操作基础 第 2 章 矩阵及其基本运算 第 3 章 数值计算函数 第 4 章 符号运算函数 第 5 章 概率统计 第 6 章 绘图与图形处理 第 7 章 MATL ...
最新文章
- JQuery制作的toolTip,针对图片预览效果
- 【shell 大系】Linux Shell常用技巧
- echo,printr,print_r之间的区别
- nfs服务器实现文件共享,NFS服务器及Samba服务配置实现文件共享(示例代码)
- 华大单片机m4内核的滴答定时器_微处理器、单片机及其外设,处理还是控制?...
- python tfidf特征变换_机器学习的“万能模板” - 数据分析
- MySQL常用数据类型以及内置函数
- iPhone 12s渲染图曝光,刘海变小了!
- CentOS7救援模式以及救援模式的网络配置
- Linux使用FlowScan
- Spring IOC基础使用
- nginx upstream 代理 负载
- 100行python代码能做什么,100行python代码实现跳一跳辅助程序
- 学生简单个人博客网页DW模板 简单HTML静态网页设计个人主页制作 大学生个人网站模板下载 网页作业个人主页制作
- 虚幻airsim1:下载安装
- Android 汽车电子功能安全模块化设计思路
- Axure原型APP设计规范
- VMWARE启动失败
- 5分钟之内,让你轻松掌握面试流程
- python实现简易数独小游戏
热门文章
- 云服务器网站直接域名登录,[一叶花开]网站搭建-天翼云服务器跳过备案实现可直接访问IP地址以及解析域名...
- 随记-简单而优雅的 namedtuple
- 液晶屏偏光片的选用规则?
- Linux内核框架之内核进程
- 这是一篇理工男写的口红科普文
- 人机交互-9-人机交互基础知识
- Python猫眼电影最近上映的电影票房信息
- 基于fmincon函数的最优化计算
- kotlin android 开源,一款纯Kotlin编写的开源安卓应用 Smile
- SQL 更新语句:Update ... set ... from ...