主要内容

映射到不同的值类型

在Map结构中存储其他类(如结构或单元格数组)是相当常见的。然而,当map中存储的数据属于一个基本的MATLAB时,map的内存效率最高®类型,如double, char,整数和逻辑。

映射到结构数组

下面的示例将航空公司座位号映射到包含票号和目的地的结构。从地图开始ticketMap,它将票号映射给乘客:

ticketMap = containers.Map(…{' 2r175 ', ' b7398 ', ' a479gy ', ' nz1452 '},…{“詹姆斯·恩莱特”,“卡尔·海恩斯”,“莎拉·莱瑟姆”,……布拉德利•里德的});

然后创建以下结构数组,包含票号和目的地:

s1。ticketNum = '2S185';s1.destination = '巴巴多斯';s1。reserved = '06-May-2008';s1。origin = 'La Guardia';s2。ticketNum = '947F4';s2.destination = 'St. John'; s2.reserved = '14-Apr-2008'; s2.origin = 'Oakland'; s3.ticketNum = 'A479GY'; s3.destination = 'St. Lucia'; s3.reserved = '28-Mar-2008'; s3.origin = 'JFK'; s4.ticketNum = 'B7398'; s4.destination = 'Granada'; s4.reserved = '30-Apr-2008'; s4.origin = 'JFK'; s5.ticketNum = 'NZ1452'; s5.destination = 'Aruba'; s5.reserved = '01-May-2008'; s5.origin = 'Denver';

将五个座位映射到这些结构中:

seatingMap =容器。地图(…{' 23f ', ' 15c ', ' 15b ', ' 09c ', ' 12d '},…{s5, s1, s3, s4, s2});

使用此Map对象,查找预订座位09C的乘客的信息:

seatingMap('09C') ans = ticketNum: 'B7398'目的地:'格拉纳达'预订:' 2008年4月30日'出发地:'肯尼迪机场'

使用ticketMap而且seatingMap您可以一起查看预订15B座位的人的姓名:

ticket = seatingMap('15B').ticketNum;乘客=莎拉·莱瑟姆

映射到单元格数组

与结构一样,还可以映射到map对象中的单元格数组。继续前面部分的航空公司的例子,航班上的一些乘客在航空公司有“常旅客”账户。将这些乘客的姓名与他们使用的里程记录和他们仍然可用的里程记录对应起来:

accountMap =容器。地图(…{“苏珊·斯佩拉”,“卡尔·海恩斯”,“安娜·莱瑟姆”},…{{247.5, 56.1}, {0, 1342.9}, {24.6, 314.7}});

使用地图检索乘客的帐户资料:

name = '卡尔·海恩斯';acct = accountMap(name);Fprintf ('% 1 !在他/她的账户上有1f英里,\n',…Name, acct{1}) fprintf('并且有%。剩余1f英里。\n', acct{2})卡尔·海恩斯(Carl Haynes)已经在他/她的账户上使用了0.0英里,还剩1342.9英里。

另请参阅

|||||

相关的话题