什么时候应该在Matlab中使用地图容器?

时间:2018-11-26 13:35:51

标签: matlab

乍看之下,像在MathWorks上的示例中一样使用Maps(见下文)似乎很有用。但是再三考虑,它们是一个容器结构,就像Matlab的struct变量类型一样。我是Maps的新手,却没有何时使用它们而不是structs的优势-将问题分解为一些可测量的参数:在某些用例中使用{{1} }与Maps相比更快,并且使用更少的代码行?

来自MathWorks文档,例如:

structs

与结构类似的东西

months = {'Jan','Feb','Mar','Apr'};
rainfall = [327.2 368.2 197.6 178.4];
M = containers.Map(months,rainfall)

1 个答案:

答案 0 :(得分:2)

容器映射或多或少是具有自定义索引的结构。例如,当您更喜欢通过某个char而不是索引来引用条目时,可以使用它们。假设您想回想3月的降雨量。

%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

提醒一下,如果可以使用向量代替结构,则一定可以!

您将在this question上找到有关地图的其他有价值的信息。