热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Matlab矩阵操作函数-reshaperepmatpermutesqueezeflip

Matlab中经常需要对矩阵进行维度上的操作,下面做一个简单的总结:在Matlab中,不管矩阵的维度是多少,数据在内存中的存储都是按照“行-列-页”的顺序进行存储的。比如:>>a

Matlab 中经常需要对矩阵进行维度上的操作,下面做一个简单的总结:


在Matlab中,不管矩阵的维度是多少,数据在内存中的存储都是按照 “行-列-页” 的顺序进行存储的。比如:

>> a = [11,12,13; 21,22,23]

a =

11 12 13
21 22 23

>> a(:)

ans =

11
21
12
22
13
23

>>
有了这个概念之后,理解下面的函数就会很简单。


reshape -- 对矩阵中所有的元素做维度上的重新分配,分配的原则是把内存中的数据按照 “行-列-页” 的顺序填满目的矩阵。(必须保证重新分配后的矩阵与原矩阵元素数量一致):

>> a = [11,12,13; 21,22,23]

a =

11 12 13
21 22 23

>> reshape(a,[3,2])

ans =

11 22
21 13
12 23

>>
repmat -- 把当前矩阵当做单一元素来组合成目标矩阵:
>> a = [11,12,13; 21,22,23]a =    11    12    13    21    22    23>> repmat(a,[2,1,2])ans(:,:,1) =    11    12    13    21    22    23    11    12    13    21    22    23ans(:,:,2) =    11    12    13    21    22    23    11    12    13    21    22    23>> 
permute -- 改变现有矩阵维度的顺序,函数参数中有一个向量[2, 3, 1]表示第二个维度更改为第一个维度,第三个维度更改为第二个维度,第一个维度变为第三个维度(数字表示原维度编号,数字的位置表示现在维度的编号):
>> a(:,:,1) = [111,121,131; 211,221,231];>> a(:,:,2) = [112,122,132; 212,222,232]a(:,:,1) =   111   121   131   211   221   231a(:,:,2) =   112   122   132   212   222   232>> permute(a,[2,3,1])ans(:,:,1) =   111   112   121   122   131   132ans(:,:,2) =   211   212   221   222   231   232>> 
squeeze -- 去掉矩阵中维度大小为1的维:
>> a

a(:,:,1) =

111
211


a(:,:,2) =

112
212

>> size(a)

ans =

2 1 2

>> b = squeeze(a)

b =

111 112
211 212

>> size(b)

ans =

2 2

>>
flip -- 按照指定的维度号进行矩阵的翻转:
>> a(:,:,1) = [111,121,131; 211,221,231];>> a(:,:,2) = [112,122,132; 212,222,232]a(:,:,1) =   111   121   131   211   221   231a(:,:,2) =   112   122   132   212   222   232>> fliplr(a)ans(:,:,1) =   131   121   111   231   221   211ans(:,:,2) =   132   122   112   232   222   212>> flip(a,2)ans(:,:,1) =   131   121   111   231   221   211ans(:,:,2) =   132   122   112   232   222   212>> flip(a,1)ans(:,:,1) =   211   221   231   111   121   131ans(:,:,2) =   212   222   232   112   122   132>> flip(a,3)ans(:,:,1) =   112   122   132   212   222   232ans(:,:,2) =   111   121   131   211   221   231>> 
其中flip有两个引申出来的函数fliplr、flipud来具体实现矩阵的左右和上下翻转。


推荐阅读
  • 本文详细探讨了网站流量统计中常用的三个关键指标:页面浏览量(PV)、独立访客数(UV)和独立IP数(IP)。通过分析这些指标的定义、计算方法及其应用场景,帮助网站运营者更好地理解用户行为,优化网站内容与用户体验。 ... [详细]
  • 使用Pandas高效读取SQL脚本中的数据
    本文详细介绍了如何利用Pandas直接读取和解析SQL脚本,提供了一种高效的数据处理方法。该方法适用于各种数据库导出的SQL脚本,并且能够显著提升数据导入的速度和效率。 ... [详细]
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • FineUI 是一款基于 jQuery 的专业级控件库,专为 ASP.NET WebForms 和 MVC 开发设计。它提供了丰富的用户界面组件,简化了复杂 Web 应用程序的开发过程。 ... [详细]
  • 本文详细介绍了S5P4418处理器中的定时器模块,涵盖五个定时器(Timers 0-4)的特性与配置。这些定时器不仅支持PWM输出,还具备灵活的时钟源和预分频器设置,其中Timers 0和1共享一个预分频器,而Timers 2、3和4则共享另一个预分频器。默认情况下,2nboot配置为200MHz。 ... [详细]
  • 深入解析Nginx中的Location指令及其属性
    本文将详细探讨Nginx配置文件中关键的location指令,包括其三种匹配方式(精准匹配、普通匹配和正则匹配),以及如何在实际应用中灵活运用这些匹配规则。此外,还将介绍location下的重要子元素如root、alias和proxy_pass,并解释相关参数的使用方法。 ... [详细]
  • 本文探讨了在UC浏览器中调用分享面板后,图片无法正常显示的问题,并提供了详细的解决方法和代码示例。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • HBase运维工具全解析
    本文深入探讨了HBase常用的运维工具,详细介绍了每种工具的功能、使用场景及操作示例。对于HBase的开发人员和运维工程师来说,这些工具是日常管理和故障排查的重要手段。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 本文详细解释了华为ENSP模拟器中常用的命令,涵盖用户模式、系统模式、接口模式和地址池视图模式下的操作。这些命令对于进行计算机网络实验至关重要,帮助用户更好地理解和配置路由器及PC机的通信。 ... [详细]
  • 本文详细探讨了 Django 的 ORM(对象关系映射)机制,重点介绍了其如何通过 Python 元类技术实现数据库表与 Python 类的映射。此外,文章还分析了 Django 中各种字段类型的继承结构及其与数据库数据类型的对应关系。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
author-avatar
mobiledu2502859097
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有