前言
以下是博主精心整理的两个matlab专栏,包含入门到精通及实战内容,需要的小伙伴可根据自己需求自行订阅。
MATLAB-30天带你从入门到精通
https://blog.youkuaiyun.com/wenyusuran/category_10614422.html
MATLAB深入理解高级教程(附源码)
https://blog.youkuaiyun.com/wenyusuran/category_2239265.html
在博主的资源中也有各种算法的应用实例源代码,需要的小伙伴自取哟。
在创建了矩阵之后,我们经常需要访问矩阵中的某一个或者一些元素,另外可能需要对其中的某些元素重新赋值或者删除某一部分元素。本文介绍如何进行矩阵的寻访与赋值。
1.矩阵的标识
本节介绍单个元素标识和寻访的3种方式:全下标、单下标、逻辑1标识。
1.1 全下标标识
经典数学教科书在引述具体矩阵元素时,通常采用全下标标识法,即指出某一元素是在第几行第几列。这种标识方法的优点是:几何概念清楚,引述简单。全下标标识法在MATLAB的寻访和赋值中因为最为直观,所以它最为常用。
对于二维矩阵来说,全下标标识由两个下标组成:行下标、列下标。如A(3,5)表示二维矩阵A的第3行第5列。
这里值得注意的是,MATLAB中对下标的标识是从1开始的,就是和我们平时在数学中使用的说法是一致的。这和其他一些编程语言从0开始标识是不同的。
1.2 单下标标识
MATLAB尽管是以矩阵作为基本的计算单元,但是矩阵的后台存储并不是像显示出来的那样成长方形排列的,而是按照单下标标识作为一列存储到内存中。单下标标识就是“只用一个下标来指明元素在矩阵中的位置”。当然,这样做首先要对二维矩阵的所有元素进行“一维编号”。所谓“一维编号”就是:先设想把二维矩阵的所有列,按照先左后右的次序首尾相连排成一维长列,然后自上而下对元素位置进行编号。
单下标与全下标的转换关系:以m´n的二维矩阵A为例,若全下标的元素位置是“第a行,第b列”,那么相应的单下标则为c=(b-1)*m+a。
在MATLAB中,有两个函数可以实现全下标和单下标的转换。
sub2ind: 根据全下标换算出单下标。
ind2sub: 根据单下标换算出全下标。
单下标的优势是在特定情境下使用更为简洁,例如编制某些循环的时候只需要一个循环变量就可以了,另外比如需要将某数组赋值给另一维数不同的数组的时候。
1.3 逻辑1标识
在实际使用中,有时会遇到寻找矩阵中大于或者小于某值的元素的问题,这时就可以使用逻辑1标识法。逻辑1标识用一个基于原矩阵A相对位置的逻辑数组B来对矩阵A进行寻访。数据B中每一个true值也就是1表示相对位置的A中元素可以被寻访。如果需要通过逻辑1标识来对矩阵进行寻访,只需将符合条件的元素位置的标识设置为逻辑1即可。
采用逻辑1标识的程序在速度方面具有一定的优势。
2. 矩阵的寻访
【例2-7】 二维矩阵的寻址。
>> a=[1 2 3; 4 5 6] % 创建测试矩阵
a =
1 2 3
4 5 6
>> A=a(2,2) % 全下标寻访
A =
5
>> b=a(4) % 单下标寻访
b =
5
>> B=a