matlab的map容器类型

概述

  学过编程代码的人员应该对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'}

你可能感兴趣的:(Matlab,matlab,数学建模,开发语言)