码农知识堂 - 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

    在这里插入图片描述


  • 相关阅读:
    java计算机毕业设计高校学生党建管理系统源码+mysql数据库+系统+lw文档+部署
    只要封装相同,电容体本身大小就一样吗?
    【owt-server】内部传输机制2:TransportSession 、TransportClient、 TransportData
    数据分析及治理工程师
    牛客网——杨辉三角
    「Redis数据结构」字符串对象String
    角逐「视觉感知」万亿市场,这家国内领跑者如何挑战性能天花板?
    MES管理系统解决方案要帮助企业实现哪些目标
    远程控制软件Splashtop的使用
    Coelho2021_GMGCv1 计算丰度的方法
  • 原文地址:https://blog.csdn.net/qq_52441682/article/details/126054512
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号