我目前正在尝试根据“月”,“周”,“日”在一个月内映射一些数据.
这意味着原则上我有三个键.我想到了解决问题的方法:
1)
containers.Map(月,containers.Map(周,containers.Map(日,值)))
我发现这个解决方案相当“丑陋”.
2)
另一种方法是使用具有多个键的Map. containers documentation显示只允许一个维度键.
题:
你有什么技巧可以解决这个多重关键问题吗?
更新/解决方案:
我最后使用串联字符串作为键(如建议的那样)我添加了以下代码片段以将containers.Map作为正确的多维hashmap.看看下面(为了简化我排除了一周):
classdef example
properties
myMap % Map for storage
end
methods
function obj = example()
obj.myMap = containers.Map;
end
function obj2 = setVal(obj2,value,Month,DayType)
key = strcat(num2str(Month),'-',num2str(DayType));
obj2.myMap(key) = value;
end
function value = getValue(obj,Month,DayType)
key = strcat(num2str(Month),'-',num2str(DayType));
value = obj.myMap(key);
end
end