在通常情况下,我们使用基本类型包括数组元胞结构体等,就可以满足基本使用需求,但是它们也有着局限性,在某些时候我们会使用containers.Map来使得代码具有更好的可读性,程序效率更高。containers.Map类似于Python中的字典,两个元素之间有着一一对应的映射关系。
假设现在我们需要做一个电话簿,此时名字和电话号码就应该是一一对应的,如果用struct或者cell类型储存,就会出现一个问题,所有的对应元素的index必须相同,想要得到对应人的电话号码,首先查询有没有这个人,再得到这个人的需要,通过序号得到对应的电话号码,一个是流程复杂,另一个是每次都是顺序查找效率低下,因此这时推荐使用containers.Map数据类型。
containers.Map是一个内部封装的类,因此使用方式和普通类有很多相似的地方。
map = containers.Map; % 声明了一个对象
map('dad') = '15536952269';
name = {'dad','mom'};
number = [123 321];
map = containers.Map(a,b)
这三个属性分别是个数,键的类型,以及键值的类型,注意键的类型一定是char。
- 访问
kk = map('dad'); % 获得dad 的电话号码
2.修改
map('dad') = '123456789'
- 删除
map.remove(dad); % 删除键 dad 和对应的键值
containers.Map的特点:
- 可以不断扩充而且不需要预分配内存
- 可以增强代码的可读性
- 可以提供数据的快速查找
containers.Map 的更多方法: