Main Content

containers.Map

一意のキーを値にマップするオブジェクト

説明

Map オブジェクトは、対応するキーを使用して値を取得できるデータ構造体です。キーは実数または文字ベクトルにすることができます。その結果、正の整数でなければならない配列インデックスよりも柔軟に、データにアクセスできます。値はスカラーまたは非スカラーの配列になります。

作成

説明

メモ

dictionary は、キーと値としてより多くのデータ型を受け入れ、パフォーマンスも高いため、containers.Map よりも推奨されます。 (R2022b 以降)

M = containers.Map(keySet,valueSet)keySet のキーを含む Map オブジェクトを作成し、各キーは valueSet の対応する値にマップされます。入力引数 keySetvalueSet は要素数が同じで、keySet の要素は一意でなければなりません。

M = containers.Map(keySet,valueSet,'UniformValues',isUniform) は、isUniformfalse の場合に、valueSet の値が一様である必要がないことを指定します。isUniform の既定値は true です。valueSet の値は、すべてが同じデータ型のスカラーである場合、またはすべてが文字ベクトルである場合に一様です。

M = containers.Map('KeyType',kType,'ValueType',vType) は空の Map オブジェクトを作成し、これに後で追加できるキーと値のデータ型を指定します。'KeyType''ValueType' の名前と値の引数ペアの順序を入れ替えることができますが、両方の名前と値のペアが必須です。

M = containers.Map は、空の Map オブジェクトを作成します。

入力引数

すべて展開する

キー。数値配列、文字ベクトルの cell 配列、または string 配列として指定します。

string 配列を使用してキーを指定すると、関数 containers.Map はキーを変換し、文字ベクトルとして保存します。この変換により、出力された Map オブジェクトの KeyType プロパティが 'char' に設定されます。

値。配列として指定します。

valueSet 内の一様な値のインジケーター。true (1) または false (0) として指定します。

空の Map オブジェクトに追加するキーのデータ型。文字ベクトルとして指定します。kType を表内の任意のデータ型として指定できます。したがって、キーは文字ベクトルまたは数値スカラーのいずれかです。

kType

キーのデータ型とサイズ

'char' (既定)

文字ベクトル

'double'

double スカラー

'single'

single スカラー

'int32'

32 ビット符号付き整数スカラー

'uint32'

32 ビット符号なし整数スカラー

'int64'

64 ビット符号付き整数スカラー

'uint64'

64 ビット符号なし整数スカラー

空の Map オブジェクトに追加する値のデータ型。文字ベクトルとして指定します。vType は表内の任意のデータ型として指定できます。

vType

値のデータ型とサイズ

'any' (既定)

任意のデータ型の配列

'char'

文字ベクトル

'logical'

logical スカラー

'double'

double スカラー

'single'

single スカラー

'int8'

8 ビット符号付き整数スカラー

'uint8'

8 ビット符号なし整数スカラー

'int16'

16 ビット符号付き整数スカラー

'uint16'

16 ビット符号なし整数スカラー

'int32'

32 ビット符号付き整数スカラー

'uint32'

32 ビット符号なし整数スカラー

'int64'

64 ビット符号付き整数スカラー

'uint64'

64 ビット符号なし整数スカラー

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

Map オブジェクト内のキーと値のペアの数。数値スカラーとして指定します。

この プロパティ は読み取り専用です。

キーのデータ型。文字ベクトルとして指定します。

この プロパティ は読み取り専用です。

値のデータ型。文字ベクトルとして指定します。

オブジェクト関数

isKeyMap オブジェクトがキーを含むかどうかを判別
keysMap オブジェクトのキーを返す
lengthMap オブジェクト内のキーと値のペアの数
removeMap オブジェクトからのキーと値のペアの削除
sizeMap オブジェクトのサイズ
valuesMap オブジェクトの戻り値

すべて折りたたむ

数か月間の降雨量データを含む Map オブジェクトを作成します。このマップは valueSet に 4 つの値を含み、キーは keySet 内の 4 つの月の名前です。

keySet = {'Jan','Feb','Mar','Apr'};
valueSet = [327.2 368.2 197.6 178.4];
M = containers.Map(keySet,valueSet)
M = 
  Map with properties:

        Count: 4
      KeyType: char
    ValueType: double

3 月の降雨量を表示します。'Mar' をキーとして使用して 3 月の値を取得できます。

M('Mar')
ans = 197.6000

マップ内の値の数を表示します。ドット表記を使用して Count プロパティにアクセスできます。

M.Count
ans = uint64
    4

識別番号がキーで従業員名が値である Map オブジェクトを作成します。

ids = [437 1089 2362];
names = {'Lee, N.','Jones, R.','Sanchez, C.'};
M = containers.Map(ids,names)
M = 
  Map with properties:

        Count: 3
      KeyType: double
    ValueType: char

識別番号をキーとして使用して名前を取得します。

M(437)
ans = 
'Lee, N.'

患者の検査結果を含む Map オブジェクトを作成します。各患者の結果は、数値配列またはファイルのいずれかに格納されています。数値配列とファイル名を値として同じマップに格納できます。異なるデータ型の値を同じマップに格納するには、'UniformValues',false を指定します。

keySet = {'Li','Jones','Sanchez'};
testLi = [5.8 7.35];
testJones = [27 3.92 6.4 8.21];
testSanchez = 'C:\Tests\Sanchez.dat';

valueSet = {testLi,testJones,testSanchez};
M = containers.Map(keySet,valueSet,'UniformValues',false)
M = 
  Map with properties:

        Count: 3
      KeyType: char
    ValueType: any

Li に関連付けられた数値配列を表示します。

M('Li')
ans = 1×2

    5.8000    7.3500

Sanchez に関連付けられたファイル名を表示します。ファイルに数値が含まれる場合は、関数を呼び出してそれらの値を配列に読み取ることができます。

M('Sanchez')
ans = 
'C:\Tests\Sanchez.dat'

空の Map オブジェクトを作成します。後で追加するキーと値のペアのデータ型を指定します。

M = containers.Map('KeyType','char','ValueType','double')
M = 

  Map with properties:

        Count: 0
      KeyType: char
    ValueType: double

キーと値のペアをマップに追加します。

M('Jan') = 327.2;
M('Feb') = 368.2;
M
M = 
  Map with properties:

        Count: 2
      KeyType: char
    ValueType: double

マップに現在含まれているキーと値を表示します。

keys(M)
ans = 1x2 cell
    {'Feb'}    {'Jan'}

values(M)
ans=1×2 cell array
    {[368.2000]}    {[327.2000]}

拡張機能

バージョン履歴

R2008b で導入