![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=1738940668-gE8p4eoF6hjyCwnDtFiINrJzFY20WFcS-0-1d1490dca603845be728eb4b4352d320)
对一维数组的多个元素进行访问:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_14.jpg?sign=1738940668-GokXwBDf7jJFHjMLeEl262aEgPmRbMnM-0-d975c9d37c3c7cd363f06ad0b0b8ee58)
这里使用另一种方法也可以实现上述功能,具体如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_15.jpg?sign=1738940668-YZw1L1voUwujfDVqJb4czl6uIO4C2cx0-0-7f088cc735af1d19ccb439be53779b14)
一维数组的寻址方式很简单,也便于理解,掌握好一维数组的寻址方式是学习二维数组寻址的基础。
子数组的寻址示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_16.jpg?sign=1738940668-EssBMy2XwfNZ26x7l7dYHh08VrmCj7PJ-0-f6640146ef8228bd9fc7777f99dee42e)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_17.jpg?sign=1738940668-vHWrhNgNYwCojl060o3LJlhXGVWir3KU-0-84f1add0f6c7cc9ed4e0f0760e4b58b3)
5.2.2 对二维数组进行寻址
对二维数组进行寻址与对一维数组进行寻址一样,只不过二维数组需要考虑行和列,而一维数组只需要考虑一个行或列,所以对二维数组进行寻址有单下标、全下标和函数寻址这3种方法,其基本思想与一维数组是一样的。
下面举例说明二维数组元素及子数组的各种标识和寻址格式。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_18.jpg?sign=1738940668-K4RiNjp5gL57QZzH66lnx5k3A8S1IRSM-0-bef53f044a766c0e37e9d488f8217f63)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_19.jpg?sign=1738940668-BrBIKJlBCqt61SGn7PiOL6ixNg0HM4Kw-0-a289236c14c8975fb33fd5f80f221105)
基于行和列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_20.jpg?sign=1738940668-CxlqXLPIBIdqg7sbCYlut5O99iytNq8L-0-523595129d734c0aee2b7acdc860c130)
基于行或列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_21.jpg?sign=1738940668-uzDOiCioWu2wrxSGpmokd0g0lLzrplhi-0-944cd054ef438aba132702822ee7c89d)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_22.jpg?sign=1738940668-qgHtIq3zyx5KXC03wnGVusuFS9ptwaSd-0-939787ffa953a9ef6ad86445daa56b1a)
可以使用sub2ind()函数读取数组中排序凌乱的元素。
使用sub2ind()函数可以将一个二维数组的下标变成索引,然后用索引对二维数组进行寻址,这种操作直接省略前面所说的方法,不但方便简单而且便于理解。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_23.jpg?sign=1738940668-cfF8bpWgdlIUxSmR5V2LJxurZagZRNKP-0-7c6200bb24dfc699015c04e6912106e5)
读取其中的第2行、第2列和第3行、第1列的两个元素,有如下两种方法:第一种方法是使用第二种方法将二维数组变成一维数组,然后读取一维数组中的两个元素;第二种方法是使用sub2ind()函数。(第一种方法在此不做介绍)
使用sub2ind()函数的示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_24.jpg?sign=1738940668-8odZBjqqNFlC4GhcqH6cRNSYRdqWXPeW-0-e6e6f20b28f53b9d6013ba5f567dbb22)