像在MathWorks上的示例中那样使用Maps
(见下文(乍一看似乎很有用。但仔细想想,它们是一个容器结构,就像Matlab的struct
变量类型一样。我是Maps
的新手,错过了与structs
相比何时使用它们的优势——将问题分解为一些可测量的参数:在哪些用例中,使用Maps
和structs
更快,使用更少的代码行?
来自MathWorks文档,例如:
months = {'Jan','Feb','Mar','Apr'};
rainfall = [327.2 368.2 197.6 178.4];
M = containers.Map(months,rainfall)
与structs 类似
months = {'Jan','Feb','Mar','Apr'};
rainfall = [327.2 368.2 197.6 178.4];
for ind=1:numel(months)
s.(months{ind})=rainfall(ind);
end
容器映射或多或少是一个具有自定义索引的结构。例如,当您喜欢通过某个char
而不是索引引用条目时,可以使用它们。假设你想回忆一下三月的降雨量。
%Declaration map, as you wrote
months = {'Jan','Feb','Mar','Apr'};
rainfall = [327.2 368.2 197.6 178.4];
M = containers.Map(months,rainfall);
M('Mar') % 197.6
正如您所看到的,您不仅保存了一个变量,还保存了引用(作为一个字符,而不是以典型的方式…(。对于大量的数据,你应该使用地图。因此,当你特别需要char
引用和结构时,我建议你使用映射
映射是(…(一个字典,一个映射x-->y,对x和y没有任何限制。结构是一种数据结构,一种以逻辑方式保存数据的方法。-@hbaderts
提醒一下,如果你可以使用向量而不是结构,一定要这样做!
在这个问题上,你会发现关于地图的其他有价值的信息。