MATLAB MAP容器类型

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

map本意为映射,就是可以将一个量映射到另一个量。比如将一个字符串映射为一个数值,那这个字符串就是map的键(key),那这个值就是map的数据(value)。由此,可以将map容器理解为一种快速查找数据结构的键。

对一个map元素进行寻访的索引称为"键"。一个"键"可以是以下任何一种数据类型:

1)1✖N字符串。

2)单精度或双精度实数标量。

3)有符号或无符号标量整数。

这些键和其对应的数据储存在map中。一个map的每一个条目都包括唯一的键和相对应的数据。map中储存的数据可以是任何类型,包括数值类型、字符或字符串类型、结构体类型、单元类型或其他map。

一个map是MATLAB类的一个对象。map类的所有对象具有3种属性,如下所示。用户不能直接对这些属性进行修改,但可以通过作用于map类的函数进行修改。

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

map属性的查看方法为map名+小数点"."+map的属性名。例如,为了查看mapW的对象包括的数据类型,需要使用mapW.ValueType。

2、创建map对象

map是一个map类的对象,由MATLAB中名为容器的一个包来定义,可以通过构造函数来创建,其创建方法如下:

复制代码
  mapObj = containers.Map({key1,key2,...},{val1,val2,...})

当键和值是字符串时,需要对上述语法稍做变更,即:

复制代码
mapObj = containers.Map({'key1','key2',...},{val1.val2,...})

map的创建可以分为两个步骤:首先创建一个空map对象;然后使用keys和values方法对其内容进行补充,空map对象的创建方法如下:

复制代码
newMap = containers.Map()

得到结果如下:

复制代码
newMap = 

  Map - 属性:

        Count: 0
      KeyType: char
    ValueType: any

3、查看/读取map对象

1)查看map对象

map对象中的每个条目包括两部分:一个唯一的键及其对应的值。可以通过使用keys函数查看map对象中包含的所有键;通过values函数查看所有的值。

2)读取map对象

当创建好一个map对象后,用户可以对其进行数据的寻访,寻访指定键(keyName)所对应的值(valueName)使用格式如下:

复制代码
valueName = mapName(keyName)

当键名是一个字符串时,需要使用单引号将键名括起来。

注:对多个键进行访问时,不能像其他数据类型中那样使用":",这将导致错误的产生。

4、编译map对象

1)从map对象中删除keys/values对。

用户可以从remove函数从map对象中删除keys/value对。该函数格式为:

复制代码
remove ('mapName','keyName')

式中,mapName和keyName分别为map的对象名称及需要删除的键名。执行该命令后,MATLAB系统删除指定的键名及其对应的值。

2)添加keys/values对象

当用户向一个map对象中写入新元素的值时吗,需要提供键名,而且该键的类型必须和map中的其他键一致。该操作的调用格式为:

复制代码
existingMapObj(newKeyName) = newValue

3)修改keys

如果需要保持值不变的情况下对键名进行更改,首先要删除键名和对应的值,然后添加一个有正确键名的新条目。

4)修改values

通过赋值操作,覆盖原有的值,即可对map对象中的值进行修改。

相关推荐
随心点儿15 分钟前
使用python 将多个docx文件合并为一个word
开发语言·python·多个word合并为一个
不学无术の码农18 分钟前
《Effective Python》第十三章 测试与调试——使用 Mock 测试具有复杂依赖的代码
开发语言·python
tomcsdn3124 分钟前
SMTPman,smtp的端口号是多少全面解析配置
服务器·开发语言·php·smtp·邮件营销·域名邮箱·邮件服务器
EnigmaCoder29 分钟前
Java多线程:核心技术与实战指南
java·开发语言
大白的编程日记.2 小时前
【计算机基础理论知识】C++篇(二)
开发语言·c++·学习
网小鱼的学习笔记2 小时前
python中MongoDB操作实践:查询文档、批量插入文档、更新文档、删除文档
开发语言·python·mongodb
Q_Q5110082852 小时前
python的保险业务管理与数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
亮1112 小时前
Maven 编译过程中发生了 Java Heap Space 内存溢出(OutOfMemoryError)
java·开发语言·maven
Chef_Chen2 小时前
从0开始学习R语言--Day40--Kruskal-Wallis检验
开发语言·学习·r语言
Zhu_S W3 小时前
深入理解Java虚拟机:Java内存区域与内存溢出异常
java·开发语言·jvm