![MATLAB R2020a从入门到精通(升级版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/74/38507074/b_38507074.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.2 数组寻址
数组中总是包含多个元素,因此,在对数组的单个元素或多个元素进行访问时,需要对数组进行寻址运算。
5.2.1 对一维数组进行寻址
对一维数组进行寻址很简单,因为下标可以写成一个数或一个一维数组,即可寻址得到想要得到的元素,具体可参考下面的示例。
对一维数组的其中一个元素进行访问:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_13.jpg?sign=1738888745-cNas97yjyKp756MZPoNhcoJZ3RzCe1XI-0-05de499d27c7f3d4c424c56709c81d3d)
对一维数组的多个元素进行访问:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_14.jpg?sign=1738888745-HO9nU90Ke89xXkCERy0gFrkV4EfXJiKM-0-ba453e4d79c0bf319b9c34838d321df4)
这里使用另一种方法也可以实现上述功能,具体如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_15.jpg?sign=1738888745-anEn2UVKrmX8kSZPM8VYf6V9iGQlLyX9-0-b67e3516f94165a96f7ec492112386f3)
一维数组的寻址方式很简单,也便于理解,掌握好一维数组的寻址方式是学习二维数组寻址的基础。
子数组的寻址示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_16.jpg?sign=1738888745-IUcOIz2PGxza0X3z4VJqIPySpVqiSGjW-0-847087bac164fc405cb5ef0d5a5f2a57)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_17.jpg?sign=1738888745-S6s6NZGHrVwyCq9hzPpmBBkwJ2EiCywT-0-d09d0a4168c034434c6c091a28e32bde)
5.2.2 对二维数组进行寻址
对二维数组进行寻址与对一维数组进行寻址一样,只不过二维数组需要考虑行和列,而一维数组只需要考虑一个行或列,所以对二维数组进行寻址有单下标、全下标和函数寻址这3种方法,其基本思想与一维数组是一样的。
下面举例说明二维数组元素及子数组的各种标识和寻址格式。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_18.jpg?sign=1738888745-epyM0rQyqmLOzw1sC3FQlV8Na7xhSbDv-0-43a6986a80c70319bf2631101f760702)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_19.jpg?sign=1738888745-7CV6rJkl34uES0Kqcfs2TV9Uc80kg2Xn-0-b04fbe6bf1ba8354b1e75f247c587b9f)
基于行和列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_20.jpg?sign=1738888745-cPK5Ivr9I12g5v6PWVnC2Es3aMyw5iju-0-ad3afaf1fb9908af7cccd19068229ffe)
基于行或列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_21.jpg?sign=1738888745-akNSSbooJrtMhCII19nbTFCEkB5kUXrf-0-73fc15164c21c510404192eb6b498dc5)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_22.jpg?sign=1738888745-e6mGz1dljYUR8fiBiVCqgrdbHhdRkwiB-0-9e32587d65314a501c4308020fef0e27)
可以使用sub2ind()函数读取数组中排序凌乱的元素。
使用sub2ind()函数可以将一个二维数组的下标变成索引,然后用索引对二维数组进行寻址,这种操作直接省略前面所说的方法,不但方便简单而且便于理解。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_23.jpg?sign=1738888745-EETFnbAxjtPQfsztUTOkdH8o7crluwQt-0-bf1838491ee082bf80885fb207a38028)
读取其中的第2行、第2列和第3行、第1列的两个元素,有如下两种方法:第一种方法是使用第二种方法将二维数组变成一维数组,然后读取一维数组中的两个元素;第二种方法是使用sub2ind()函数。(第一种方法在此不做介绍)
使用sub2ind()函数的示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_24.jpg?sign=1738888745-d0Dy2o4mS6Tdec6gwKIH0M5V6URORqPB-0-c45b394864f36bb9932530e69998337a)