3
給定單元陣列containers.Map
包含給定事件(鍵)的計數(值)的對象。我希望得到一個包含每個鍵的計數總和(作爲值)的地圖(或允許我計算計數的東西)。通過Matlab中的密鑰合併單元格陣列圖
例如:
maps = { containers.Map({'a','b'},{1,2}),
containers.Map({'b','c'},{4,1}) };
mergeMaps(maps)
ans = Map(a -> 1, b -> 6, c -> 1)
我能想出迄今唯一的一點是:
maps = { ... };
res = containers.Map();
for cMapC = maps
cMap = cMapC{1};
for cKeyC = keys(cMap{1})
cKey = cKeyC{1};
if isKey(res, cKey)
res(cKey) = res(cKey) + cMap(cKey);
else
res(cKey) = cMap(cKey);
end
end
end
這應該工作(未經測試),但其「效率」和可讀性是可疑的至少可以說。什麼是更好的解決方案?
請注意,目前沒有歸因於事件的索引,因此使用稀疏矩陣而不是地圖很麻煩。