0

オブジェクトのコレクションを、キー オブジェクト ペアを使用して連想配列に格納したいと考えています。目標は、後でキーを使用してオブジェクトを検索できるようにすることです。

そのために、containers.map 組み込みクラスを使用できるはずです。私が何を意味するかを説明するために、次のサンプルコードを書きました。

classdef clsMyClass < handle
   properties 
      dblMyProperty1
   end 
   methods
      function self = clsMyClass(dblValue)
        if nargin > 0
          for intCounter = numel(dblValue):-1:1
              self(intCounter).dblMyProperty1 = dblValue(intCounter);
          end                
        end
      end      
   end
end 

classdef clsMyClassCollection < handle
   properties 
      contMyCollection
   end 
   methods
      function self = clsMyClassCollection(strValues,strKeys)
        if nargin > 0
          self.contMyCollection= containers.Map(strKeys, clsMyClass(strValues));
        end
      end      
   end
end 

for i=10:-1:1 ; vecKeys{i} = ['A' num2str(i)];end;
objMyClassCollection = clsMyClassCollection ([0:10:90],vecKeys);

これにより、次のエラーが発生します。

??? Error using ==> containers.Map
The values must be a cell array when the keys are a cell array.

このエラーを修正するための支援を得ることができれば幸いです。また、これがキー オブジェクト コレクションを実装する最善の方法であるかどうかを教えていただければ幸いです。

4

1 に答える 1