Summation of Container Values

1 vue (au cours des 30 derniers jours)
Tingjun Wu
Tingjun Wu le 12 Nov 2019
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?

Réponses (1)

Abhisek Pradhan
Abhisek Pradhan le 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.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by