ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

異なるデータ型へのマップ

構造体やセル配列などの他のクラスを Map 構造体に格納することは、非常に一般的に行われます。ただし、格納されたデータが、double、char、integer、logical のように、基本的な MATLAB® のデータ型の 1 つである場合には、Map のメモリ効率が最も良くなります。

構造体配列へのマップ

次の例では、航空機の座席番号を、この座席に座る乗客の情報を含む構造体にマップします。はじめに、以下の構造体配列を作成します。

s1.ticketNum = '2S185'; s1.destination = 'Barbados';
s1.reserved = '06-May-2008'; s1.origin = 'La Guardia';
s2.ticketNum = '947F4'; s2.destination = 'St. John';
s2.reserved = '14-Apr-2008'; s2.origin = 'Oakland';
s3.ticketNum = 'A479GY'; s3.destination = 'St. Lucia';
s3.reserved = '28-Mar-2008'; s3.origin = 'JFK';
s4.ticketNum = 'B7398'; s4.destination = 'Granada';
s4.reserved = '30-Apr-2008'; s4.origin = 'JFK';
s5.ticketNum = 'NZ1452'; s5.destination = 'Aruba';
s5.reserved = '01-May-2008'; s5.origin = 'Denver';

これらの構造体の 1 つに 5 つの座席をマップします。

seatingMap = containers.Map( ...
    {'23F', '15C', '15B', '09C', '12D'}, ...
    {s5, s1, s3, s4, s2});

この Map オブジェクトを使い、座席 09C を予約した乗客についての情報を検索します。

seatingMap('09C')
ans = 
      ticketNum: 'B7398'
    destination: 'Granada'
       reserved: '30-Apr-2008'
         origin: 'JFK'
seatingMap('15B').ticketNum
ans =
    A479GY

2 つの Map を共に使用して、その座席を予約した乗客の名前を知ることができます。

passenger = ticketMap(seatingMap('15B').ticketNum)
passenger =
   Anna Latham

セル配列へのマップ

構造体と同じように、Map オブジェクトのセル配列にもマップすることができます。ここでも、前の節の航空券の例を取り上げます。乗客の中には、航空会社のマイレージ クラブに登録している人がいます。これらの乗客の名前を、使用したマイル数と、未使用のマイル数の記録にマップします。

accountMap = containers.Map( ...
    {'Susan Spera','Carl Haynes','Anna Latham'}, ...
    {{247.5, 56.1}, {0, 1342.9}, {24.6, 314.7}});

乗客のアカウント情報を得るために Map を使用します。

name = 'Carl Haynes';
acct = accountMap(name);

fprintf('%s has used %.1f miles on his/her account,\n', ...
    name, acct{1})
fprintf('  and has %.1f miles remaining.\n', acct{2})

Carl Haynes has used 0.0 miles on his/her account,
  and has 1342.9 miles remaining.
この情報は役に立ちましたか?