文字列をMATLABの数値と関連付けることを試みています。それは私が事がある文字列を数値に関連付ける検索可能なオブジェクトを作成する最速の方法
string: 'abcd', index: 1
string: 'abdd', index: 2
etc.
を形をとり、オブジェクトを作成したい、ですが、私は、例えば、文字列で提供された場合、オブジェクトを検索できるように「ABCD」とそれを返すために取得する必要があります関連する(一意の)索引、この場合は1です。私はまた、インデックスを使用してオブジェクトを検索し、関連付けられた文字列を返すことができる必要があります。新しい要素をこのオブジェクトにかなり頻繁に追加する必要があります。このオブジェクトには多くの要素があります(500000のオーダー)。文字列そのものは一般的に「順序付けられていません」(もしそのようなものが助けても)。
質問: MATLABでこれを行う最も速い方法は何ですか?私が試した何
: MATLABでのMapクラスは関連性があるように思え。しかし、私は両方向で検索する方法を理解することはできません。私はそれによって意味することはMathworks社のウェブサイト上で提供される次の例で説明します。
ticketMap = containers.Map(...
{'2R175', 'B7398', 'A479GY', 'NZ1452'}, ...
{'James Enright', 'Carl Haynes', 'Sarah Latham', ...
'Bradley Reid'});
ticketMap('2R175') -> returns James Enright
しかし、つまり、「ジェームズ・エンライト」は返却してもらう「与えられ、他の方向での検索がサポートされていないようです2R175 '。私もMap2コード(http://www.mathworks.com/matlabcentral/fileexchange/40323-map2-enhanced-map-class)を試しましたが、非常に遅いです。
文字列をセル配列に配置し、セル配列のインデックスをインデックスとして使用することについて考えましたか?あなたは 'is member'を使って簡単にセル配列を検索できます。 – Cecilia
A - > BとBB - > AAという2つのマップオブジェクトを作成しようとしましたか?AAはAAのコピーで、Bはキーマップペアの挿入/削除ごとにBBのコピーです。その場合、検索する必要のあるマップオブジェクトを示す文字列の属性が必要になることがあります。 – Abhinav
大量のデータを持っているときにデータベースを使用しようとすると、テーブルからデータを追加、検索、削除することができるデータベースで、高速で信頼性が高く、実装が難しくありません。データベースを使うのが好きです) –