matlab map容器类型

  1. map容器类型以及map类概述

    map是将一个量映射到另一个量上,此是前面的量就是map的键(key),后面的量就是map的数据(value)。map的键和对应的数据都储存在map中。一个map条目包括唯一的键和对应的数据。map容器可以理解为一种快速查找数据结构的键。

    可以当作map的键的数据类型:

    • 1 X N字符串
    • 单精度或双精度实数标量
    • 有符号或无符号标量

    map类的三个属性:

    属性说明默认值
    Count无符号64位整数,表示map对象中存储的key/value对的总数0
    КеyТype字符串,表示map对象中包括的key的类型char
    ValueType字符串,表示map对象中包括的数据类型any

    map属性的查看方法:

    map名+小数点“.+map的属性名
    

    例如:

    mapW.ValueType
    
  2. 创建map对象

    创建方法:

    mapObj=containers.Map({key1,key2,...},{val1,val2,...})
    %	若键和值为字符串时
    mapObj=containers.Map({'key1','key2',...},{'val1','val2',...})
    

    样例:

    >> A=containers.Map({'A','B','C'},{95,85,75})
    
    A = 
    
      Map - 属性:
    
            Count: 3
          KeyType: char
        ValueType: double
    
    >> 
    

    其他方法:先创建一个空的map对象,然后使用keys和values方法对其内容及进行补充。

    newmap=containers.Map()												%	创建一个空的map对象
    
  3. 查看/读取map对象

    • 查看命令

      keys(mapObj)
      values(mapObj)
      

      样例:

      >> keys(A)
      
      ans =
      
        1×3 cell 数组
      
          {'A'}    {'B'}    {'C'}
      
      >> values(A)
      
      ans =
      
        1×3 cell 数组
      
          {[95]}    {[85]}    {[75]}
      
      >> 
      
    • 读取map对象

      知道map的键读取对应的值

      valueName=mapName(keyName)
      

      样例:

      >> c=A('B')						%	读取一个值
      
      c =
      
          85
      
      >> 
      

      知道多个键值读取方法:使用函数values

      values(mapObj,{'keyi','keyj',...})
      

      样例:

      >> d=values(A,{'A','C'})
      
      d =
      
        1×2 cell 数组
      
          {[95]}    {[75]}
      
      >> 
      
  4. 编辑map对象

    • 删除map对象中的key/values对:使用remove函数。

      remove('mapname','keyname')
      
      >> remove(A,'C')
      
      ans = 
      
        Map - 属性:
      
              Count: 2
            KeyType: char
          ValueType: double
      
      >> keys(A)
      
      ans =
      
        1×2 cell 数组
      
          {'A'}    {'B'}
      
      >> values(A)
      
      ans =
      
        1×2 cell 数组
      
          {[95]}    {[85]}
      
      >> 
      
    • 为map对象添加一个元素

      existingMapObj(newkeyname)=newvalue
      
      >> A('D')=88
      
      A = 
      
        Map - 属性:
      
              Count: 3
            KeyType: char
          ValueType: double
      
      >> keys(A)
      
      ans =
      
        1×3 cell 数组
      
          {'A'}    {'B'}    {'D'}
      
      >> values(A)
      
      ans =
      
        1×3 cell 数组
      
          {[95]}    {[85]}    {[88]}
      
      >> 
      
    • 修改keys

      无法直接对keys进行修改,应当先删除要修改的key/values对,然后重新添加一个新的正确的。

    • 修改values

      直接进行赋值操作即可

      >> A('D')=100
      
      A = 
      
        Map - 属性:
      
              Count: 3
            KeyType: char
          ValueType: double
      
      >> keys(A)
      
      ans =
      
        1×3 cell 数组
      
          {'A'}    {'B'}    {'D'}
      
      >> values(A)
      
      ans =
      
        1×3 cell 数组
      
          {[95]}    {[85]}    {[100]}
      
      >> 
      
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐