MATLAB知识点:矩阵元素的引用

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​

MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili


节选自第3章  3.3.2 矩阵元素的引用

在讲解矩阵元素的引用之前,我们先来回顾一下矩阵的表示方式:

上方给出了一个m行n列的矩阵,对于第i行第j列的元素,我们用a_{ij}表示。

因此,我们可以使用矩阵元素所处的行(row)和列(column)来进行引用矩阵的某一个元素,方式为:a(row_ind, column_ind).

这里的row_ind表示要引用的元素的行索引,column_ind表示列索引。如果row_ind和column_ind都是一个常数,则表示提取矩阵中的单个元素;如果row_ind或column_ind是包含有多个元素的向量,则表示同时提取多个位置的元素。与向量类似,end也可以用来替代最后一个索引,通常和冒号法一起使用。

下面我们来举两个例子,大家也可以打开本节的配套代码学习:“code_3_3_2”。

前面我们学过,可以使用length函数和numel函数来计算向量中包含的元素个数。那么,怎样计算一个矩阵的大小呢?我们可以使用size函数,它有两种常见的用法:

(1)size(A)返回一个行向量,其元素是A的各维度的长度。若A是一个3×4的矩阵,则size(A)返回向量[3 4];如果让[r,c] = size(A),那么r = 3,c = 4。

(2)size(A,dim)返回在维度dim上的长度。dim = 1时表示行;dim = 2时表示列。若A是一个3×4的矩阵,则size(A,1)返回3,size(A,2)返回4。

(length函数和numel函数也可以用在矩阵上。length函数会返回行和列的较大值:对上面的A矩阵,length(A)返回4;numel函数会返回矩阵中元素的总数,numel(A) 返回12)

有时候我们需要取出矩阵的某一行或者某一列。以取出矩阵A的第一行为例,我们可以使用代码A(1, 1:end),即row_ind取1表示第一行,column_ind取1:end表示从1到最后一列的索引。这时候我们可以直接将其简写为:A(1, :),逗号后面是列索引的位置,加一个冒号就表示取出每一列的元素。同理,要取第一列的所有元素,我们可以使用代码:A(:, 1).

总结:

  •  A(:, n) 表示矩阵A的第n列的所有元素。

  •  A(m, :) 表示矩阵A的第m行的所有元素。

练习:

前面我们介绍的是对矩阵的双下标进行索引,即同时指定行索引和列索引,中间用逗号隔开。有同学会问,我们能不能使用单个下标对矩阵进行索引呢?在MATLAB中是可以的,这种单下标的索引方法称为线性索引

事实上,在MATLAB中,矩阵的数据在计算机的内存中被存储为单列。以下图为例,下面的矩阵虽然显示为 3×3 矩阵,但MATLAB在内存中将它存储为单列,由它的各列顺次连接而成。例如,第2行第2列的元素的线性索引为5,第2行第3列的元素的线性索引为8。

我们可以利用线性索引来取出矩阵中的元素,尽管这种方式并不那么直观。

另外,A(:)命令可以将A中的所有元素按照线性索引的顺序重构成一个列向量。

最后,sub2ind和ind2sub函数可用于在矩阵的原始索引(双下标)和线性索引之间进行转换。他们的功能刚好相反,sub2ind将矩阵的下标转换为线性索引;ind2sub将线性索引转换为下标。

(1)    ind = sub2ind(sz,row,col) 针对大小为 sz 的矩阵返回由 row 和 col 指定的行列下标的对应线性索引 ind。此处,sz 是包含两个元素的向量,其中 sz(1) 指定行数,sz(2) 指定列数。

(2)    [row,col] = ind2sub(sz,ind) 返回数组 row 和 col,其中包含与大小为 sz 的矩阵的线性索引 ind 对应的等效行和列下标。此处,sz 是包含两个元素的向量,其中 sz(1) 指定行数,sz(2) 指定列数。

我们举两个例子:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/457293.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity 接口、抽象类、具体类对象的配合使用案例

文章目录 示例1:接口(Interface)示例2:抽象类(Abstract Class)示例3:结合使用接口与抽象类示例4:多接口实现示例5:抽象类与接口结合 在Unity中使用C#编程时,接…

WebSocket基础详解

文章目录 前言由来简介优缺点适用场景兼容性 API介绍构造函数实例方法send()close() 实例属性ws.readyState(只读)ws.bufferedAmount(只读)ws.binaryTypeextensions(只读)protocol(只读&#xf…

算法笔记刷题日记——3.简单入门模拟 3.2 查找元素

刷题日记 3.2 查找元素 B1041 B1004 B1028 B1032 A1011 A1006 A1036 错题记录 B1028 人口普查 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的…

蓝桥杯嵌入式学习记录——LCD的使用

目录 一、前言 二、LCD代码的移植 三、LCD代码的调用 一、前言 前一篇文章已经简单记录了一下cubeMX软件的使用和LED的点亮,今天来记录一下LCD的使用。LCD的驱动代码有很多,但实际上在蓝桥杯的比赛中用起来非常简单,因为赛点会提供LCD的驱…

mysq开启慢查询日志,对慢查询进行优化

1.创建实验的环境 创建对应的数据库,然后写脚本向数据库中写入400万条的数据 //创建实验用的数据库 CREATE DATABASE jsschool;//使用当前数据库 USE jsschool;//创建学生表 CREATE TABLE student (sno VARCHAR(20) PRIMARY KEY COMMENT 学生编号,sname VARCHAR(20…

微软为新闻编辑行业推出 AI 辅助项目,记者参加免费课程

2 月 6 日消息,微软当地时间 5 日发布新闻稿宣布与多家新闻机构展开多项基于生成式 AI 的合作。微软表示,其使命是确保新闻编辑室在今年和未来拥有创新。 目前建议企业通过微软官方合作伙伴获取服务,可以合规、稳定地提供企业用户使用ChatGP…

C#委托的前世今生

起因 很多C#初学者,都遇到过这样的问题——线程间操作无效,从不是创建控件的线程访问它。 今天就这个问题,展开分析。 溯源 先说下这个问题产生的根源。 大家都知道,程序运行起来之后,首先会有一个主线程&#xff…

用HTML5 + JavaScript实现下雪效果

用HTML5 JavaScript实现下雪效果 <canvas>是一个可以使用脚本 (通常为JavaScript) 来绘制图形的 HTML 元素。 <canvas> 标签/元素只是图形容器&#xff0c;必须使用脚本来绘制图形。 HTML5 canvas 图形标签基础https://blog.csdn.net/cnds123/article/details/…

搜索与图论(一)(深搜,广搜,树与图的存储遍历,拓扑排序)

一、DFS 往深里搜&#xff0c;搜到叶子结点那里&#xff0c;回溯&#xff0c;到可以继续到叶子结点深搜的位置。 1、回溯一定要恢复现场 2、定义一个与当前递归层数有关的终止条件&#xff08;题目要求的东西&#xff09; 3、每层都用循环判断是否存在可以dfs的路 输出数字…

DDoS攻击激增,分享高效可靠的DDoS防御方案

当下DDoS攻击规模不断突破上限&#xff0c;形成了 "网络威胁格局中令人不安的趋势"。专业数据显示&#xff0c;对比2022年上半年与2023年上半年&#xff0c;所有行业的DDoS攻击频率增加了314%。其中零售、电信和媒体公司遭受的攻击规模最大&#xff0c;三个垂直行业的…

10.0 Zookeeper 权限控制 ACL

zookeeper 的 ACL&#xff08;Access Control List&#xff0c;访问控制表&#xff09;权限在生产环境是特别重要的&#xff0c;所以本章节特别介绍一下。 ACL 权限可以针对节点设置相关读写等权限&#xff0c;保障数据安全性。 permissions 可以指定不同的权限范围及角色。 …

如何启动若依框架

Mysql安装 一、下载 链接&#xff1a;https://pan.baidu.com/s/1s8-Y1ooaRtwP9KnmP3rxlQ?pwd1234 提取码&#xff1a;1234 二、安装(解压) 下载完成后我们得到的是一个压缩包&#xff0c;将其解压&#xff0c;我们就可以得到MySQL 5.7.24的软件本体了(就是一个文件夹)&…