什么时候应该在Matlab中使用映射容器



像在MathWorks上的示例中那样使用Maps(见下文(乍一看似乎很有用。但仔细想想,它们是一个容器结构,就像Matlab的struct变量类型一样。我是Maps的新手,错过了与structs相比何时使用它们的优势——将问题分解为一些可测量的参数:在哪些用例中,使用Mapsstructs更快,使用更少的代码行?

来自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

提醒一下,如果你可以使用向量而不是结构,一定要这样做!

在这个问题上,你会发现关于地图的其他有价值的信息。

相关内容

  • 没有找到相关文章