オブジェクトのコレクションを、キー オブジェクト ペアを使用して連想配列に格納したいと考えています。目標は、後でキーを使用してオブジェクトを検索できるようにすることです。
そのために、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.
このエラーを修正するための支援を得ることができれば幸いです。また、これがキー オブジェクト コレクションを実装する最善の方法であるかどうかを教えていただければ幸いです。