Clear Filters
Clear Filters

How to iterate and access over map key values

43 views (last 30 days)
I have a map with some keys which has multiple number of values in it How can I access those values for each key.
these show the size of the array of the value but not the values itself.
for u = keys(mp)
mu = values(mp,u);
disp(mu)
for v = mu
disp(v);
end
disp('-----------ended------------------')
end

Answers (2)

Chunru
Chunru on 11 Jul 2023
mp = dictionary(["a1", "a2", "a3"], {1, [2 3], "str"})
mp =
dictionary (stringcell) with 3 entries: "a1" ⟼ {[1]} "a2" ⟼ {[2 3]} "a3" ⟼ {["str"]}
k = keys(mp);
v = values(mp)
v = 3×1 cell array
{[ 1]} {[ 2 3]} {["str"]}
for i = 1:length(v)
disp(v(i));
end
{[1]} {[2 3]} {["str"]}

Diwakar Diwakar
Diwakar Diwakar on 11 Jul 2023
Check the below code may be help you.
% Create and populate the map
mp = containers.Map;
mp('key1') = [1, 2, 3];
mp('key2') = {'value1', 'value2', 'value3'};
mp('key3') = [10, 20, 30, 40];
% Iterate over each key in the map
for u = keys(mp)
key = u{1}; % Extract the key from the cell array
% Access the values associated with the current key
valuesArray = mp(key);
% Iterate over each value in the values array
for i = 1:numel(valuesArray)
value = valuesArray(i);
disp(value);
end
disp('-----------ended------------------')
end
1 2 3
-----------ended------------------
{'value1'} {'value2'} {'value3'}
-----------ended------------------
10 20 30 40
-----------ended------------------

Categories

Find more on Dictionaries in Help Center and File Exchange

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!