主要内容

使用密钥索引读写

从地图读取时,使用与特定值定义和关联的相同密钥。将新条目编写到地图要求您提供存储值的值,为每个键存储。

请注意

对于大型Map,键和值方法使用大量内存,因为它们的输出是单元格数组。

读取地图

在构造并填充了Map之后,就可以开始使用它来存储和检索数据了。使用Map的方式与使用数组的方式相同,只是不限制使用整数索引。查找值的一般语法(),以获取给定的密钥()。如果键是字符向量,请将其用单引号括起来:

家= mapObj (keyN);

从地图开始TicketMap.

ticketMap = containers.Map(…{' 2r175 ', ' b7398 ', ' a479gy ', ' nz1452 '},…{'James Enright', 'Carl Haynes', 'Sarah Latham',…布拉德利•里德的});

你可以用适当的键在Map中索引任何一个值:

乘客= TicketMap('2R175')乘客=詹姆斯直播

找到持票的人A479GY

旅客请到服务台来好吗?\ n’,……旅客萨拉·莱瑟姆请到服务台来好吗?

要访问多个键的值,请使用价值方法,在单元格数组中指定键:

values(ticketMap, {'2R175', 'B7398'}) ans = 'James Enright' ' 'Carl Haynes')

映射容器仅支持标量索引。金宝app不能像在其他MATLAB中那样使用冒号操作符访问一系列键®类。例如,下面的语句会抛出错误:

ticketMap(“2 r175”:“B7398”)ticketMap (:)

添加键/值对

与其他数组类型不同,Map中的每个条目由两个项组成:值和键。向Map写入新值时,还必须提供它的键。此键在类型上必须与Map中的任何其他键一致。

使用以下语法向Map中插入额外的元素:

existingMapObj (newKeyName) = newValue;

从地图开始TicketMap.

ticketMap = containers.Map(…{' 2r175 ', ' b7398 ', ' a479gy ', ' nz1452 '},…{'James Enright', 'Carl Haynes', 'Sarah Latham',…布拉德利•里德的});

添加两个更多的条目到TicketMap.地图。验证TicketMap.现在有六个键/值对:

ticketMap('947F4') = '苏珊·斯佩拉';ticketMap('417R93') = 'Patricia Hughes';ticketMap。Count ans = 6

列出所有的键和值TicketMap.

键(ticketmap),值(ticketmap)ans ='2r175''417r93'''947f4'''b7398''b7398''nz1452'ans ='jamesentright''patricia hughes''''susan spera''sarah latham'''sarah latham''sarah latham''carl haynes''布拉德利里德'

用连接构建地图

可以使用连接将键/值对分组添加到Map。Map对象的连接不同于其他类。MATLAB没有构建Map对象的向量,而是返回一个包含来自每个贡献Map对象的键/值对的单一Map。

连接Map对象的规则有:

  • 只允许Map对象的垂直向量。不能创建m × n数组或Map对象的水平向量。由于这个原因,Vertcat.为Ma金宝appp对象提供支持,但不支持horzcat

  • 连接的每个Map中的所有键必须属于同一个类。

  • 可以使用不同数量的键/值对组合映射。结果是一个单独的Map对象,其中包含来自每个Map对象的键/值对:

    tmap1 = containers.map({'2R175','b7398','a479gy'},... {'jamesenright','carl haynes','sarah latham'});tmap2 = containers.map({'417r93','nz1452','947f4'},... {patricia hughes','bradley reid','susan spera'});%串联两个地图:ticketmap = [tmap1;TMAP2];

    该连接的结果是相同的6个元素映射在上一节中构建:

    ticketMap。Count ans = 6 keys(ticketMap), values(ticketMap) ans = '2R175' '417R93' '947F4' 'A479GY' 'B7398' 'NZ1452' ans = 'James Enright' 'Patricia Hughes' 'Susan Spera' 'Sarah Latham' 'Carl Haynes' 'Bradley Reid'
  • 连接不包括生成的映射对象中的重复密钥或其值。

    在下面的例子中,两个对象m1平方米使用钥匙8.在地图上m18是价值的关键C;在平方米,它是价值的关键X

    m1 =容器。地图({1, 5, 8}, {'A', 'B', 'C'}); m2 = containers.Map({8, 9, 6}, {'X', 'Y', 'Z'});

    结合m1平方米来形成一个新的Map对象,

    m = [m1;平方米);

    得到的地图对象只有5个键/值对。值C被从连接中删除,因为它的键不是唯一的:

    键(m),值(m) ans = [1] [5] [6] [8] [9] ans = ' A ' B ' Z ' ' X ' ' Y '

另请参阅

|||

相关话题