Summation of Container Values
Show older comments
How can I sum the Container values?
example:
I have Container A and B
A = containers.Map({'W', 'C'},[1,2]);
B = containers.Map({'W', 'Co'},[3,4]);
And I want sum A and B
So the result should be:
W: 4
C: 2
Co: 4
How can I do that?
Answers (1)
Abhisek Pradhan
on 21 Nov 2019
The code below provides a generalized approach to merge maps and if there is a collision because of same key add those values.
allKeys0 = cellfun(@keys, maps, 'UniformOutput', false);
[allKeys, ~, m] = unique([allKeys0{:}]);
allValues0 = cellfun(@values, maps, 'UniformOutput', false);
allValues = cell2mat([allValues0{:}]);
sumValues = arrayfun(@(x) sum(allValues(m==x)), 1:numel(allKeys));
mergedMap = containers.Map(allKeys, sumValues);
Refer the link below for more information on MATLAB map container.
Categories
Find more on Vector Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!