码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MATLAB2016笔记(二):基本矩阵操作


    文章目录

    • 一、矩阵和数组
      • (一)矩阵概念
      • (二)数组概念
      • (三)二者区别与联系
    • 二、矩阵的构造
      • (一)直接赋值构造
      • (二)特殊矩阵构建指令
      • (三)向量、标量和空矩阵
    • 三、矩阵大小及结构的改变(旋转、大小改变,结构改变)
      • (一)B=flipdim(A,dim),行列逆序排列
      • (二)B=rot90(A),逆时针旋转
      • (三)B=reshape(A,m,n),保证元素个数不变,按列不断索引
      • (四)B=repmat(A,[m,n]),B由m*n块A复制平铺而成
      • (五)B=shiftdim(A,k),将矩阵A的维度向左移动K
    • 四、矩阵下标引用
      • (一)访问单个矩阵元素(倒数第二行有误)
      • (二)线性引用矩阵元素(如何双下标转化单下标)
      • (三)访问多个矩阵元素(灵活使用冒号)
    • 五、矩阵信息获取
      • (一)矩阵结构(主要判断是否为特殊矩阵)
      • (二)矩阵大小(维数、各维长度、元素个数)
      • (三)矩阵数据类型
    • 六、矩阵的保存和加载
      • (一)矩阵存储方式
      • (二)矩阵元素寻址方式
      • (三)矩阵元素的扩展与删除(使用圆括号)


    一、矩阵和数组

    (一)矩阵概念

    在数学上,定义由 m × n m \times n m×n个数 a i j ( i = 1 , 2 , . . , m ;   j = 1 , 2 , . . , n ) a_{ij}(i=1,2,..,m;\ j=1,2,..,n) aij​(i=1,2,..,m; j=1,2,..,n)排成的 m m m行 n n n列的数表

    A = [ a 11 a 12 . . . a 1 n a 21 a 22 . . . a 2 n ⋮ ⋮ ⋮ a m 1 a m 2 . . . a m n ] A=\left[

    a11a12...a1na21a22...a2n⋮⋮⋮am1am2...amn" role="presentation" style="position: relative;">a11a21⋮am1a12a22⋮am2.........a1na2n⋮amna11a12...a1na21a22...a2n⋮⋮⋮am1am2...amn
    \right] A=⎣ ⎡​a11​a21​⋮am1​​a12​a22​⋮am2​​.........​a1n​a2n​⋮amn​​⎦ ⎤​
    为 m m m行 n n n列矩阵

    (二)数组概念

    数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的集合称为数组
    在 M A T L A B MATLAB MATLAB中,一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或构造类型,因此按数组元素的类型的不同,数组又分为数值数组、字符数据、单元数组、结构数组等各种类别

    (三)二者区别与联系

    区别:
    (1)矩阵是数学概念,数组是程序设计概念
    (2)矩阵运算有明确严格的数学规则,而数组运算是MATLAB软件定义的规则,其目的是为了使数据管理方便
    
    联系:
    在MATLAB中,矩阵以数组的形式存在,因此一维数组相当于向量,二维数组相当于矩阵
    所以可以将矩阵视作数组的子集
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    二、矩阵的构造

    (一)直接赋值构造

    采用矩阵构造符号——方括号“[]”,将矩阵元素置于方括号内
    同行元素之间以空格或逗号隔开
    行与行之间用分号“;”隔开
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    (二)特殊矩阵构建指令

    在这里插入图片描述
    在这里插入图片描述

    简单示例:
    
    • 1

    在这里插入图片描述

    (三)向量、标量和空矩阵

    (1)当m=1或n=1,建立的矩阵称为向量
    (2)在MATLAB中,标量都是以矩阵的形式存储的,所以标量有两种表示方法
    	A=[1]或者A=1
    (3)当m=0或n=0时,创建的矩阵称为空矩阵,空矩阵中没有任何元素,因此不占用任何存储空间
    		0矩阵只是所有元素都为0,依然占用存储空间
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、矩阵大小及结构的改变(旋转、大小改变,结构改变)

    在这里插入图片描述
    在这里插入图片描述

    (一)B=flipdim(A,dim),行列逆序排列

    A表示一个矩阵,dim指定翻转方式。
    dim为1,表示每一列进行逆序排列;
    dim为2,表示每一行进行逆序排列。
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    (二)B=rot90(A),逆时针旋转

    在这里插入图片描述

    (三)B=reshape(A,m,n),保证元素个数不变,按列不断索引

    在这里插入图片描述

    (四)B=repmat(A,[m,n]),B由m*n块A复制平铺而成

    在这里插入图片描述

    (五)B=shiftdim(A,k),将矩阵A的维度向左移动K

    当k为负值时,左移k次也就是右移-k次
    假设k=1,A的维度为[1,2,3],移动后的维度就是[2,3,1]
    
    • 1
    • 2

    在这里插入图片描述

    在这里插入图片描述


    四、矩阵下标引用

    在 M A T L A B MATLAB MATLAB中,普通二维数组元素的数字索引分为双下标索引和单下标索引

    双下标索引:A(2,3)表示矩阵A中第2行第3列的元素
    单下标索引:采用列优先,对于4*4的矩阵,A(7)表示矩阵A中第3行第2列的元素
    
    • 1
    • 2

    (一)访问单个矩阵元素(倒数第二行有误)

    在这里插入图片描述
    勘误:
    在这里插入图片描述

    (二)线性引用矩阵元素(如何双下标转化单下标)

    在这里插入图片描述
    在这里插入图片描述

    (三)访问多个矩阵元素(灵活使用冒号)

    在这里插入图片描述


    五、矩阵信息获取

    (一)矩阵结构(主要判断是否为特殊矩阵)

    在这里插入图片描述

    稀疏矩阵是一种不同于一般矩阵的结构
    
    • 1

    在这里插入图片描述

    (二)矩阵大小(维数、各维长度、元素个数)

    在这里插入图片描述

    (三)矩阵数据类型

    在这里插入图片描述

    在下方的例子中,类型依然保持了一致
    
    • 1

    在这里插入图片描述


    六、矩阵的保存和加载

    (一)矩阵存储方式

    M A T L A B MATLAB MATLAB中依照列优先排列的原则将元素依次放在相应的各格子里,可以通过上述的 s u b 2 i n d ( ) sub2ind() sub2ind()函数将双下标转换为单下标

    (二)矩阵元素寻址方式

    1.下标寻址
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    2.线性寻址(注意是列优先)
    
    • 1

    在这里插入图片描述

    (三)矩阵元素的扩展与删除(使用圆括号)

    1.扩展
    
    • 1

    在这里插入图片描述

    2.删除
    
    • 1

    在这里插入图片描述


  • 相关阅读:
    【信息奥赛实训】Week1——STL 与基础数据结构专题训练
    i18next 国际化 & 与 React 联动
    读书笔记: 如何把一件事做到最好
    RabbitMQ基础组件笔记
    【Python学习笔记】Python近期总结
    SpringBoot3项目中配置JDK17
    设计模式篇---装饰模式
    VR虚拟展厅产品展示如何实现的
    Redis存储——这些数据结构原理你都懂吗?
    SpringCloud——服务注册——Zookeeper
  • 原文地址:https://blog.csdn.net/qq_52441682/article/details/126054512
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号