在Matlab中使用containers.map组合地图

时间:2017-02-22 04:22:22

标签: matlab

我正在阅读' containers.map' Mathworks网站上的课程(https://www.mathworks.com/help/matlab/ref/containers.map-class.htmlhttps://www.mathworks.com/help/matlab/ref/containers.map.iskey.html),我对组合地图感到困惑。

考虑以下示例:

keySet =   {'Jan', 'Feb', 'Mar', 'Apr'};
valueSet = [327.2, 368.2, 197.6, 178.4];
mapObj = containers.Map(keySet,valueSet)

并输入以下内容检查会员资格:

keySet = {'Apr','May','Jun'};
tf = isKey(mapObj,keySet)

结果:

tf =

     1     0     0

现在,如果我们想要组合两个地图,我们只需连接如下:

keySet   = {'Jun','Jul','Aug'};
valueSet = [ 69.9, 32.3, 37.3];
newMap = containers.Map(keySet,valueSet);

mapObj = [mapObj; newMap];

并且,类似地,为了测试成员资格(不同的集合),我们可以写:

keySet = {'Jan','May','Aug','Dec'};
tf = isKey(mapObj,keySet)

并获得:

tf =

      1   0   1   0

问题:现在,据我所知,containers.map使用哈希函数。为什么我们可以独立于mapObj构建newMap的地图 - 当我们查找键时,这会导致潜在的碰撞?

0 个答案:

没有答案