![MATLAB 8.5基础教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/310/31304310/b_31304310.jpg)
3.4 map容器
map本意是映射,可以将一个量映射到另一个量,比如将一个字符串映射为一个数值,字符串就是map的关键字(key),值就是map的该关键字的值(value),满足一一对应关系,可以通过键来快速寻访与其绑定的值。
3.4.1 map对象属性
map是MATLAB类的一个对象,它可以存储数值、字符、字符串、单元数组、结构数组等任何类型的数据,并具有3种属性,如表3-1所示。
表3-1 map类对象的属性
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-65.jpg?sign=1738902391-651LoahW6RsDIPWjRfqzS4WtqisUjW7c-0-d9b7061a54b0d383f8bdf9bdf60bf057)
3.4.2 map对象的创建
1.创建map对象
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-66.jpg?sign=1738902391-A6lZPkc5o5Wca1asfw1SrZlnOrxg2Os7-0-bbec8655e23e2cce1ed542ccd8b228a7)
【例3-7】 创建。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-67.jpg?sign=1738902391-I0XJTQ12iqoK5xAc7GgP5QJGeDFjdowy-0-8c3dc3645eb5d24d71eb86b3f83cdd1b)
【例3-8】 创建一个名为map_schedule的map对象来存储表3-2所示的安排计划表。
表3-2 学生安排计划表
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-69.jpg?sign=1738902391-4lr6K356jSeDAzISr8xtWH7oGxzBtlj1-0-57c314fb6b5ebb17953fed9ecb3fea9d)
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-70.jpg?sign=1738902391-1U0t13wpqu4jo0Cc3C30GcJKxGObDC5Q-0-7e6714939d7a8de4782d8b05572404b5)
2.查看创建的map对象
若要查看创建的map对象内容,可以使用keys函数查看map对象中包含的所有键,利用values函数查看所有的值。例如查看【例3-7】创建的map对象只需输入命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-71.jpg?sign=1738902391-dDuWrds37lJRjWfiTD2N8Kz0xHIFQawX-0-21bfcc6e67347971227e35b2798aaf05)
查看【例3-8】创建的map对象,只需输入命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-72.jpg?sign=1738902391-ZlU6jxqj7DDiGRCEnfcLwaXFzZnWOy8s-0-12b6e594a6c57a236a642fd9e828c398)
3.调用map对象中的内容
调用创建的map对象,可以在map名称后加上要调用的键名。
例如调用【例3-7】创建的map对象,只需输入命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-73.jpg?sign=1738902391-uwY2MWl6vkuWJ3NXaAl5PPtbXVHYTr4b-0-5cfed25717722511a2c53ed8c1c3ba35)
例如调用【例3-8】创建的map对象,只需输入命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-74.jpg?sign=1738902391-ekF8fQlcJiUVUjh6EIgl2V96jxII8imW-0-fce4a6d8a50ea5fd40cd282a21cfcc95)
3.4.3 map对象的编辑
1.添加keys/values对
在一个map对象中添加新元素时,其格式如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-75.jpg?sign=1738902391-vfewiuNo6Yf0veIp5ZuWqqrfxdl6Y1Ri-0-6aaf0f06ee27716a115d51591f949261)
例如在【例3-7】中添加“Sat”和“Sun”,其对应的值为6和7,只需输入命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-76.jpg?sign=1738902391-P5e6pRBZ2HxTtGe6lHznuHrbXw8ax44d-0-ab1a53a577e62b1c1c0d564a4ffdc24d)
2.删除keys/values对
从map对象中删除keys/values对,可以使用remove函数来完成,其格式如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-77.jpg?sign=1738902391-PiRg5kZAcYdEkBLPa0ENiyorxPNWJkrK-0-1abab2fd06b977fcf61332f79118e464)
例如对【例3-7】中添加键“Sat”和“Sun”之后,再删除键“Sun”的命令为:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-78.jpg?sign=1738902391-4CGvcaepT4zNksiuoChZjlX5bcwLdvsw-0-846db205c8904d3a0fca717e9c79f6c7)
3.修改键keys
如果在保持键值不变的情况下修改键名,需要先删除键名及对应的值,再加入更改后的新键名及对应的值。例如在【例3-8】中将“体育锻炼”由“星期五”改为“星期六”,这时在命令行窗口中只需输入:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-79.jpg?sign=1738902391-dsgyxTasG1zVIJIxfB7WwPsCYC9tA7tl-0-1248800df1ad4c9068aa519892a97c75)
4.修改值values
保留键名,修改键值,直接对要更改的键值修改即可。
例如对【例3-8】中的“星期三”对应的“计算机基础”改为“C语言”,只需输入:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-80.jpg?sign=1738902391-1HjlwyafKW5t67yIi3aMni3TX6aXrtUD-0-309d94077ca4cc2b35c919003c4ae94e)