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

MATLAB矩阵下标引用

        在MATLAB中,普通的二维数组元素的数字索引分为双下标索引和单下标索引。双下标索引是通过一个二元数组对来对应元素在矩阵中的行列位置,例如A(2,3)表示矩阵A中第2行第3列的元素。单下标索引的方式是采用列元素优先的原则,对m行n列的矩阵按列排序进行重组,成为一维数组,再取新的一维数组中元素优先位置对应的值作为元素在原矩阵中单下标,例如对于4✖4的矩阵,A(7)表示矩阵A中第3行第2列的元素,而A(13)表示矩阵A中第1行第4列的元素。

        1、矩阵下标访问单个矩阵元素

        常用的矩阵索引表达式如下所示。

矩阵的索引表达式
索引表达式函数功能
A(1)将二维矩阵A重组为一维数组,返回数组中第一个元素
A(:,j)返回二维矩阵A中第j列列向量
A(i,;)返回二维矩阵A中第i行行向量
A(:,j:k)返回由二维矩阵A中的第j列到第k列列向量组成的子矩阵
A(i:k,:)返回由二维矩阵A中的第i行到第k行行向量组成的子矩阵

A(i:k,j:l)

返回由二维矩阵A中的第i行到第k行行向量和第j列到第l列列向量的交集组成的子矩阵
A(;)将矩阵A中每列合并成一个长的列向量
A(j:k)返回一个行向量,其元素为A(:)中的第j个元素到第k个元素
A([j1j2...])返回一个行向量,其中元素为A(:)中的第j1、j2元素
A(;,[j1j2...])

返回矩阵A的第j1列、第j2列等的列向量

A([i1i2...]:,)返回矩阵A的第i1行、第i2行等的行向量
A([i1i2...],[j1j2...])

返回矩阵第i1行、第i2行等和第j1列、第j2列等的元素

        2、线性引用矩阵元素

        矩阵某一元素的单下标索引值和双下标索引值之间,可以通过MATLAB内部函数进行转换,其句法形式为:

        

IND = sub2ind(siz,i,j)

        其功能为将双下标索引值变为单下标索引值,其中siz是一个包含两个元素的数组,代表了转换矩阵的行列数将双下标索引值转换为单下标索引值,其中siz是一个包含两个元素的数组,代表转换矩阵的行列数,一般可以直接用size(A)表示,i和j分别是双下表索引中的行、列值,IND是转换后的单下标索引值。

[I J] = ind2sub(siz,ind)

        其功能为将单下标索引值转换为双下标索引值,各变量意义同上。

        3、访问多个矩阵元素

        设A=magic(4),如果需要计算第4列元素的和,按照前面介绍的方法可以用以下式来实现:

A(1,4)+A(2,4)+A(3,4)+A(4,4)

        在下标表达式里,可以用冒号来表示矩阵的多个元素。例如,A(1:k,j)表示矩阵第j列的前k个元素。利用冒号,第四列的元素和可以更简单的表达,代码设置如下:

sum(A(1:4,4))

        在MATLAB中提供了一个关键字end,用于表示该维中的最后一个元素,所以上式还可以写为:

sum(A(:,end))

        实际上还可以用冒号表示非相邻的多个元素,例如下面的代码:

A=1:10
B=A(1:3:10)

        由上述语句可以得到如下输出结果:


A =1     2     3     4     5     6     7     8     9    10B =1     4     7    10

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言中的一些小知识(二)
  • 【C#】vs2022 .net8
  • 分布式事务学习笔记(二)Seata架构、TC服务器部署、微服务集成Seata
  • 若依VUE项目安全kind-of postcss vite漏洞扫描和修复
  • 常见面试题之计算机网络
  • Linux内核结构
  • “msvcr120.dll丢失”的错误提示应该如何修复?几种修复方法详细介绍
  • 【有啥问啥】深入解析:机器学习中的过拟合与欠拟合
  • cadence SPB17.4 - allegro - 用板子外形创建整板铺铜
  • Android IME输入法启动显示隐藏流程梳理
  • 有效安全计划评估的基本指标
  • 茴香豆:企业级知识问答工具实践闯关任务
  • Win10 录屏秘籍大公开:从新手到高手的进阶之路
  • Golang | Leetcode Golang题解之第419题棋盘上的战舰
  • JAVA虚拟机----JVM
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript类型识别
  • js ES6 求数组的交集,并集,还有差集
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Promise面试题,控制异步流程
  • ReactNativeweexDeviceOne对比
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Web标准制定过程
  • 多线程 start 和 run 方法到底有什么区别?
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 两列自适应布局方案整理
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 排序(1):冒泡排序
  • 如何编写一个可升级的智能合约
  • 三分钟教你同步 Visual Studio Code 设置
  • 思维导图—你不知道的JavaScript中卷
  • 在weex里面使用chart图表
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​iOS实时查看App运行日志
  • ​字​节​一​面​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #includecmath
  • #单片机(TB6600驱动42步进电机)
  • (1)(1.11) SiK Radio v2(一)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (接口自动化)Python3操作MySQL数据库
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)RocketMQ初步认识
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)linux下的时间函数使用
  • (转)我也是一只IT小小鸟
  • (转载)Linux 多线程条件变量同步
  • (转载)深入super,看Python如何解决钻石继承难题
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化