2017-01-12 10 views
-3

Matlabでコンテナマップの配列を初期化する方法は?そうするために用意されている構造はありますか?Matlabでコンテナマップの配列を初期化する方法は?

refMap(1)〜refMap(n)のようなものが必要です。それぞれユニークな辞書です。

グローバル参照をローカル参照に変換するために使用する予定です。私は一種の並列プログラミングコードで作業しています。だから私はすべての情報を同じ地図に置くことはできません。私はできるだけゆっくりとした構造で終わります。

+2

番オブジェクト?それは....コンテナなので、すべてを 'container.Map'に入れるのはなぜでしょうか。 – Suever

+0

それはできません。グローバルリファレンスをローカルリファレンスに変換するために、このリファレンスを使用する予定です。私は一種の並列プログラミングコードで作業しています。私はできるだけゆっくりとした構造で終わります。 –

+0

map {3} map(4)や同様の方法でアクセスする必要のある複数のマップを保持する必要があります –

答えて

1

を.trans私はちょうどそのセル配列内でそれらを格納し、推薦しますあなたはそれらのすべてを作成するために少し匿名の関数を書くことができます

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

そしてN containers.Map`を作成するためにそれを使用するには、あなたが `container.Map`オブジェクトの配列を必要としないのはなぜ

containers = create_containers(4); 
1

配列を使用できるかわかりません。私は、異なるコンテナマップをセルに入れます。

mapObj_1 = containers.Map(Set_11, Set_12); 
cellObjs = {mapObj_1, mapObj_2, ...} 
0

私はこれを間接的に行う方法を発見しました。私は、コンテナがマップするクラスを定義することができます。そこで、コンテナマップの配列を初期化するのではなく、内部のコンテナを持つオブジェクトの配列を初期化するだけです。

これは、内部にコンテナマップトランスを持つdictのクラスを設定します。

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

これは4つのオブジェクト今

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

を初期化するには、単に オペアンプを呼び出すことによって、それらを使用することができます(ⅱ)

関連する問題