![MATLAB 8.5基础教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/310/31304310/b_31304310.jpg)
上QQ阅读APP看书,第一时间看更新
3.3 结构数组
结构数组(Structure Array)是把一组彼此相关、数据结构相同但类型不同的数据组织在一起,便于管理和引用。类似于数据库,但其数值组织形式更灵活。
3.3.1 结构数组的创建
1.直接输入法
在为结构数组中元素直接赋值的同时定义该元素的名称,并使用“.”将结构变量名与元素名连接。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-42.jpg?sign=1739529378-bbxr7JlWF3aVMbt6ZPbBmUwiFs2gP5Vh-0-c11bdf161fcf0e731af621740b4d42fc)
说明:创建1×1的结构数组时可省略记录号(record#)项。
【例3-3】 建立学生档案的小型数据库。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-44.jpg?sign=1739529378-lxnAEIfiLmk0E2DYkqNvIKqIKjBFvQSl-0-7dd75e53a6110d3f45a74faa87f6a93c)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-45.jpg?sign=1739529378-cGqmxJYF4sZHeFO97KEjc4GGT09AOwCw-0-8835e455f5000e34e2a3fec35a31c8b5)
可以继续添加其他学生数据的结构变量,只需要添加记录号即可:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-46.jpg?sign=1739529378-uFRNc2wHYENAw3ac4zC6Jn283WuEytap-0-352d1f8ff819c141414677e395ce943d)
此时输入“student”,将只得到该结构的成员变量名而不显示内容:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-47.jpg?sign=1739529378-NynsJGeDjv0q6PWRS6VpJsDYjWcEkyjf-0-10aedb8826ea0c3da39f5b404a61fe74)
可以继续在命令行窗口中查询student的具体内容:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-48.jpg?sign=1739529378-alY5HYU9BDGRlPsEpHNOj2RAWTQfUNmA-0-e4407a5d5f9a3930bedea600bd559ee0)
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-49.jpg?sign=1739529378-wr3uzK5mOEuVbrS13pi2Gh38aq9uuL70-0-b82cbfd2b49bf123538e2304b6ba3535)
2.使用struct()函数生成结构数组
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-50.jpg?sign=1739529378-Dk0aiSFDLqjJt2c49HrIYUcm2Od4p1nK-0-65f48b979cead179b8afb25835fbc155)
【例3-4】 用struct()函数创建结构数组变量。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-51.jpg?sign=1739529378-LrVTGCQ0eEutdY2uvhCip0KcqFolU8rz-0-5d4c6a3c67bd94b61c78a7653b6219e2)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-52.jpg?sign=1739529378-UpoxpNlvsP3DN9vAt3SLRcyt3hqiERVa-0-ae21a53d28a5c5cb0966d538a6ad5748)
3.3.2 结构数组的操作
1.在结构数组中添加项
如果用户想在一个结构数组中添加其他项,直接按照生成格式输入即可。
【例3-5】 在【例3-3】中的学生数据库student,若要添加元素项height和weight,只需输入:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-53.jpg?sign=1739529378-dOjQfozZdciuYCdcqVimwtL3KlYeRwRJ-0-945f72cf9a071d8f53674062b9afbffa)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-54.jpg?sign=1739529378-JwnotvJ8OaBdpMbRQ8BkhQXZdtTtGKki-0-b4f3fe07ede98096478e58631fda8550)
从上面的输出结果可知,在student中新添加了height和weight两项纪录,进而可显示:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-56.jpg?sign=1739529378-XzHUoKU8f9sj8bBGzsurGj4nii6hUjSC-0-2aedade383e0b10413469f19eed02f16)
2.在结构数组中删除项
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-57.jpg?sign=1739529378-FV1nYqPJhH0QkkrKiWFSIxIQQ5awxnVl-0-e45395a2155977e04695c1478335e240)
说明:当fields是字符串或单元数组变量时,将一次性删除多项。
【例3-6】 对【例3-5】中结果,输入语句:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-58.jpg?sign=1739529378-UZFAfaEDV5fdWo9932QI34sNoJVhtl5m-0-b9dcca5e6b65e556f91d643ac78dfd68)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-59.jpg?sign=1739529378-TS4ErL2o7cDgzxwaQ2v7LSVbypg7KD66-0-6b50fa59f3335b48ece68a77252226e7)
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-60.jpg?sign=1739529378-CbLsgjcOgvxiLKJQF7vRPO6USR2XmGLS-0-4aa46f18083491f1c300d672bcb8a371)
3.在结构数组中调用元素项
对于结构数组中的任何信息,可以通过“结构体名称.元素项名称”的格式取出。
例如,对【例3-6】中结果,输入语句:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-61.jpg?sign=1739529378-ZTUttK88Q13w1qWUqGGrQkAGEMd9AxyH-0-2767174e0745f0828f6d37bdeddfa415)
也可直接取出所有同学的姓名和分数,如执行命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-62.jpg?sign=1739529378-D3GmVSkZNEKSFz1ybraiKf8CSS2ItVNN-0-23df39ae2ac58f5cd1899fcf0e786355)
3.3.3 结构数组与单元数组的转换
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-63.jpg?sign=1739529378-LV1hVZzqSrL9Qs1N3eEDHcuGTzXriWjK-0-23b2087caeebbffb13898901cdc12046)
例如,对于【例3-4】中创建的结构数组S,执行命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-64.jpg?sign=1739529378-mfNG0cRgtp1aw5tBkzTkxDExJpTz7aNg-0-bcf01389cdc85b8f8cb04dcd998354a7)