概述
学过编程代码的人员应该对map容器还是有一定了解的。创建对象,然后进行增删改查。那么matlab的map类型如何创建对象,如何进行增删改查呢?
maltlab的map类型概念
map的本意是映射,就是可以将一个量映射到另一个量。比如将一个字符串映射为一个数值,则该字符串就是map的键(key),数值就是map的数据(value)。因此,可以将map容器理解为一种快速查找数据结构的键。
对一个map元素进行寻访的索引称为“键”。一个键可以是以下任何一种数据类型:
● 1×N字符串。
● 单精度或双精度实数标量。
● 有符号或无符号标量整数。
这些键和其对应的数据存储在map中。一个map的每一个条目都包括唯一的键和相对应的数据。map中存储的数据可以是任何类型的,包括数值类型、字符或字符串类型、结构体类型、单元类型或其他map。
一个map是MATLAB类的一个对象。map类的所有对象具有3种属性,如表2-10所示。用户不能直接对这些属性进行修改,但可以通过作用于map类的函数进行修改。
- map类的属性
属性 | 说明 | 默认值 |
---|---|---|
Count | 无符号 64 位整数,表示 map 对象中存储的 key/value 对的总数 | 0 |
KeyType | 字符串,表示 map 对象中包括的 key 的类型 | char |
ValueType | 字符串,表示 map 对象中包括的数据类型 | any |
map类型的操作
对象的创建(增)
map对象的创建可以通过构造函数来进行创建 containers.Map,创建方式如下:
% 带参数构造对象
mapObj = containers.Map({key1,key2,……},{val1,val2,……});
% 空参构造对象
mapObj = containers.Map();
- 创建对象
>> map = containers.Map()
map =
Map - 属性:
Count: 0
KeyType: char
ValueType: any
>> map2 = containers.Map({'a','b'},{23,'ab'})
map2 =
Map - 属性:
Count: 2
KeyType: char
ValueType: any
对象数据的查询(查)
map对象中的每个条目包括两个部分:一个唯一的键及其对应的值。可以通过使用keys函数查看map对象中包含的所有键;通过values函数查看所有的值。
>> keys(map2)
ans =
1×2 cell 数组
{'a'} {'b'}
>> values(map2)
ans =
1×2 cell 数组
{[23]} {'ab'}
>> values(map2,{'a'})
ans =
1×1 cell 数组
{[23]}
- 查询指定key的value值
>> a=map2('a')
a =
23
>> b=map2('b')
b =
'ab'
修改添加数据(改)
- 添加数据
>> map2('c')='ccc'
map2 =
Map - 属性:
Count: 3
KeyType: char
ValueType: any
>> keys(map2)
ans =
1×3 cell 数组
{'a'} {'b'} {'c'}
>> values(map2)
ans =
1×3 cell 数组
{[23]} {'ab'} {'ccc'}
- 修改数据
>> map2('c')=123
map2 =
Map - 属性:
Count: 3
KeyType: char
ValueType: any
>> values(map2)
ans =
1×3 cell 数组
{[23]} {'ab'} {[123]}
删除数据(删)
使用 remove(mapObj,key)进行数据的删除
>> remove(map2,'c')
ans =
Map - 属性:
Count: 2
KeyType: char
ValueType: any
>> keys(map2)
ans =
1×2 cell 数组
{'a'} {'b'}
>> values(map2)
ans =
1×2 cell 数组
{[23]} {'ab'}