![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=1738867982-0gxQ4UC1FVFKftqVy4SlgwLkJEFLSKV2-0-cd9910a4a8691b3804d6f554a74ae0f0)
对一维数组的多个元素进行访问:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_14.jpg?sign=1738867982-u6ku8OsWVDylhYIRjFeOqVeE8LOSmtZo-0-2271b208172129d6b7d97f3a8732fdfc)
这里使用另一种方法也可以实现上述功能,具体如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_15.jpg?sign=1738867982-X7MWp45TLZ48h0LfNYQc2Pz0yjPzQQT6-0-2ec1cec3228d28673d22f47b11d9c179)
一维数组的寻址方式很简单,也便于理解,掌握好一维数组的寻址方式是学习二维数组寻址的基础。
子数组的寻址示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_16.jpg?sign=1738867982-DxuVkqSwbMbLBAXLLQaozTD9KrtnoWzh-0-41196532e9cbaab9e6333b671e2dde2f)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_17.jpg?sign=1738867982-cfA26KmhUEynXFwbeZBr0CsBSpfB5klT-0-43d159762a60f2a2483271d8c5b004a3)
5.2.2 对二维数组进行寻址
对二维数组进行寻址与对一维数组进行寻址一样,只不过二维数组需要考虑行和列,而一维数组只需要考虑一个行或列,所以对二维数组进行寻址有单下标、全下标和函数寻址这3种方法,其基本思想与一维数组是一样的。
下面举例说明二维数组元素及子数组的各种标识和寻址格式。
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_18.jpg?sign=1738867982-CrDrCgB7xEk20lLvyH943vhJFxGrWSar-0-e0f9f1f1b30f976f1fa87679c8ab00ac)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_19.jpg?sign=1738867982-UIlw4IkzJsFfnSk3zkBnlJGKl8eU94DM-0-e8cf421a0cf8cd15692a6663a19b7619)
基于行和列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_20.jpg?sign=1738867982-Z2j6ymVgZo9il6qXVDy0p8OMeS2UQoli-0-18065613d2d03127533ed4de28dbd376)
基于行或列寻址:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_21.jpg?sign=1738867982-anWJln2Zie1nZ5Q5yEVXvuHmoBqAwpzU-0-6763bb4d294aa8410a2d9d3d2d751177)
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_22.jpg?sign=1738867982-qCa215nMNvLuVJQSlWTcPaYa7TC6EgzR-0-813078807d349df26ec963687c997ea2)
可以使用sub2ind()函数读取数组中排序凌乱的元素。
使用sub2ind()函数可以将一个二维数组的下标变成索引,然后用索引对二维数组进行寻址,这种操作直接省略前面所说的方法,不但方便简单而且便于理解。具体示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_23.jpg?sign=1738867982-mIw0xtUilxSbZ3pJ9ExNCYEdXPoiV3NB-0-87d0aead02b8bd2132d043d4951423f8)
读取其中的第2行、第2列和第3行、第1列的两个元素,有如下两种方法:第一种方法是使用第二种方法将二维数组变成一维数组,然后读取一维数组中的两个元素;第二种方法是使用sub2ind()函数。(第一种方法在此不做介绍)
使用sub2ind()函数的示例如下:
![img](https://epubservercos.yuewen.com/FDADB4/20266983901431206/epubprivate/OEBPS/Images/txt006_24.jpg?sign=1738867982-9sHU7ilVwh9YMvEaa5VZhOKoRi3Ld9OJ-0-c9521126773b11b1651a0e26ba720843)