Matlab container map with repeated keys

Consider the following container map
k = ["Jan" "Feb" "Jan" "Mars"]; % Notice that there are two repeated elements which is "Jan"
v = [10 20 30 15];
M = containers.Map(k,v)
% The output is
[keys(M); values(M)]
%{
{'Feb'} {'Jan'} {'Mars'}
{[ 20]} {[ 30]} {[ 15]}
%}
Notice that in the output only the last of the two repeated elements in the list k was included. What I instead would like to have is
%{
{'Feb'} {'Jan'} {'Mars'}
{[ 20]} {[ 10, 30]} {[ 15]}
%}
Is it possible?

4 件のコメント

Adam
Adam 2019 年 4 月 3 日
編集済み: Adam 2019 年 4 月 3 日
It's possible if you add them like that (i.e. with both values at once for a single key entry of 'Jan'). So long as they value type is 'any' (which I think is the default) then you can store them like that, but you have to do the work yourself manually to add new elements, which is something I do in some cases.
i.e. search if the key exists, if not then add it as normal, if it does get the value, concatenate with the new value and re-set it.
Pontus Vikstål
Pontus Vikstål 2019 年 4 月 3 日
編集済み: Pontus Vikstål 2019 年 4 月 3 日
So I do like this you mean?
k = ["Jan" "Feb" "Mars"];
v = {[10 30] 20 15};
M = containers.Map(k,v)
Adam
Adam 2019 年 4 月 3 日
Yes, that is how you would need to add them if you have them all upfront, which is fairly easy. It's just adding later elements to the map that is more convoluted.
Pontus Vikstål
Pontus Vikstål 2019 年 4 月 3 日
Alright, I see!
Thanks for the help!

サインインしてコメントする。

回答 (0 件)

カテゴリ

タグ

質問済み:

2019 年 4 月 3 日

コメント済み:

2019 年 4 月 3 日

Community Treasure Hunt

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

Start Hunting!

Translated by