当前位置: 首页 > news >正文

reshape函数及MATLAB应用

     reshape 函数在 MATLAB 中是一个非常有用的函数,通过重新排列现有元素来重构数组。它允许你重新调整数组(或矩阵)的尺寸,而不改变其数据。这个函数特别适用于当你需要将一个矩阵或数组从一种结构转换为另一种结构时,只要这两种形状的总元素数量相同即可。

基本用法:

B =reshape(A,sz)

B =reshape(A,sz1,...,szN)

B=reshape(A,sz)用大小向量z重构A以定义size(B)。例如,reshape(A,[2,3])将A重构为一个 2×3 矩阵。sz必须至少包含 2 个元素,prod(sz)必须与numel(A)相同。注意重构矩阵是先从列开始排列!

如:>> A=[1 2 3 4  5 6]

   >> B=reshape(A,[2 3])

运行结果为:

B=reshape(A,sz1,...,szN)将A重构为一个sz1×...×szN数组,其中sz1,...,szN指示每个维度的大小。可以指定[]的单个维度大小,以便自动计算维度大小,以使B中的元素数与A中的元素数相匹配。例如,如果A是一个 10×10 矩阵,则reshape(A,2,2,[])将A的 100个元素重构为一个 2×2×25 数组。

         在应用MATLAB 中经常需要获得二位矩阵,有时采用reshape可以简化编程。

        如要生成如下矩阵:

常用的方法可以赋处置并通过双循环得到,代码如下:

clear all;

close all;

clc;

I=zeros(10,10);

count=1

for i=1:1:10;

   for j=1:1:10;

    I(i,j)=count;

    count=count+1;

end

end

disp('显示矩阵');

I

figure,imshow(I,[]);

部分运行结果如下:

      但上面程序稍显复杂,可以使用MATLAB的reshape将向量重构为矩阵,方法简单且易于理解。

代码如下:

I=1:1:100;%生成向量

I2=reshape(I,10,10);%将向量重构为10×10矩阵

Ireconstruct=I2';

disp('显示重构矩阵');

Ireconstruct

运行结果如下:

     

reshape也可将多维数组重构为矩阵,如下所示:

>> D=rand(2,4,2);

>> Dreshape=reshape(A,6,2);

当然reshape也可将多维数组重构为向量,如下所示:

>> E=[1 2 3;4 5 6;7 8 9];

>> Ereshape=reshape(E,1,[]);

运行结果如下:

  如果大家觉得本文对大家编程和学习有帮助,请点赞、收藏和关注,谢谢大家!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • sql查询优化小知识-01,非等值条件查询影响
  • Vue3基础语法
  • C#-了解ORM框架SqlSugar并快速使用(附工具)
  • c# 对接第三方接口实现签名
  • 记一次因敏感信息泄露而导致的越权+存储型XSS
  • 谷粒商城实战笔记-75-商品服务-API-品牌管理-品牌分类关联与级联更新
  • 微信小程序云开发订单微信支付与小票和标签打印的完整高效流程
  • 【C# 】Pipe管道通信使用
  • Java实现数据库图片上传(包含从数据库拿图片传递前端渲染)-图文详解
  • SSRF-labs-master靶场
  • FFmpeg研究
  • ai智能写作软件哪个好?高效写作少不了这5个
  • 大数据——Hive原理
  • mysql 数据库空间统计sql
  • 一条命令安装mysql,php
  • gcc介绍及安装
  • GraphQL学习过程应该是这样的
  • HashMap剖析之内部结构
  • js中的正则表达式入门
  • Koa2 之文件上传下载
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • PHP变量
  • PHP那些事儿
  • Promise面试题,控制异步流程
  • Shadow DOM 内部构造及如何构建独立组件
  • Vue.js 移动端适配之 vw 解决方案
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 搭建gitbook 和 访问权限认证
  • 多线程 start 和 run 方法到底有什么区别?
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前端路由实现-history
  • 深度解析利用ES6进行Promise封装总结
  • 使用Swoole加速Laravel(正式环境中)
  • 通信类
  • 写给高年级小学生看的《Bash 指南》
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • ​2020 年大前端技术趋势解读
  • #android不同版本废弃api,新api。
  • #define、const、typedef的差别
  • #微信小程序:微信小程序常见的配置传值
  • (AngularJS)Angular 控制器之间通信初探
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Python) SOAP Web Service (HTTP POST)
  • (Python第六天)文件处理
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (第30天)二叉树阶段总结
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (七)Knockout 创建自定义绑定
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他