如何在Matlab中初始化容器映射数组?

时间:2017-01-12 16:48:20

标签: matlab containers

如何在Matlab中初始化容器贴图数组?这样做是否有任何结构?

我需要像refMap(1)到refMap(n)之类的东西。每一本都是一本独特的词典

我打算用它来翻译本地引用的全局引用。我正在处理一种并行编程代码。所以我不能简单地将所有信息放在同一张地图上。我最终得到的结构尽可能慢。

4 个答案:

答案 0 :(得分:1)

我不确定你是否可以使用数组。我会将不同的容器图放入单元格中。

arrayList.add(Float.valueOf(String.valueOf(your_double_variable)));

答案 1 :(得分:1)

我建议将它们存储在单元格数组中,然后你可以编写一个匿名函数来创建所有这些

create_containers = @(n)arrayfun(@(x)containers.Map(), 1:n, 'UniformOutput', false);

然后用它来创建N containers.Map`对象

containers = create_containers(4);

答案 2 :(得分:0)

我找到了间接的方法。我可以定义一个容器映射的类是它的属性。因此,我不是初始化一个容器映射数组,而是简单地初始化一个包含容器的对象数组。

这设置了一类dict,里面有一个容器映射trans。

classdef dict      
    properties
        trans = containers.Map           
    end
    methods
    end        
end

初始化4个对象

for ii = 1:4
    op(ii) = dict();
end

现在,您可以通过简单地调用来使用它们 OP(ⅱ)。反

答案 3 :(得分:0)

尽管这是一个非常老的话题,但我还是想提出我的答案。您可以使用地图的单元格数组。

no_of_maps = 10;

map1 = containers.Map('KeyType', 'double', 'ValueType', 'any');
c = {cluster1};
for i = 2:1:no_of_maps
    c{i} = containers.Map('KeyType', 'double', 'ValueType', 'any');
end

现在,您获得了一组地图,您可以以c {i}的方式访问每个地图。请根据需要编辑“ KeyType”和“ ValueType”参数。