How to iterate and access over map key values

50 次查看(过去 30 天)
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

回答(2 个)

Chunru
Chunru 2023-7-11
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 2023-7-11
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------------------

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by