Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

dictionary

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

R2022b 以降

    説明

    "ディクショナリ" は、大きなセット内の値を高速で検索するのに役立ちます。ディクショナリは、データを "値" として格納するマップで、この値には対応する一意の "キー" を使用してアクセスできます。キーと値の各ペアは "エントリ" です。

    作成

    説明

    d = dictionary(keys,values) は、指定されたキーと値を含むディクショナリを作成します。結果のディクショナリ d は、1 行 1 列のスカラー オブジェクトになります。複数の値が同じキーに割り当てられている場合は、これらのうち最後の値のみが割り当てられます。既存のキーに新しく割り当てると、そのエントリの値が上書きされます。

    values がスカラーでない限り、keysvalues は同じサイズでなければなりません。スカラーの場合は、keys の各要素が values のキーになります。キーと値が配列の場合、エントリの数はキーと値のペアの数と同じです。

    ディクショナリは、そのエントリに基づいて型指定されます。ディクショナリ内のすべてのキーとすべての値がそれぞれのデータ型を共有するか、設定されたデータ型に変換できる必要があります。新しいエントリの一部が設定されたデータ型を共有していない場合、MATLAB は変換を試みます。キーと値を同じデータ型にする必要はありません。型が異なる値は、cell 配列に含まれている場合であればディクショナリに追加できます。

    d = dictionary(k1,v1,...,kN,vN) は、指定されたキーと値のペアを含むディクショナリを作成します。同じキーのインスタンスが複数指定されている場合は、最後のキーと値のペアのみが割り当てられます。

    d = dictionary は、キーと値がない未設定のディクショナリを作成します。

    入力を指定せずに作成したディクショナリは "未設定" で、型はありません。未設定のディクショナリにエントリを追加すると、キーのデータ型と値のデータ型が指定されます。

    入力引数

    すべて展開する

    キー。スカラーまたは配列として指定します。keys の個々の要素は、同じデータ型または互換性のあるデータ型のスカラーでなければなりません。

    keys が配列の場合、各要素によって新しいキーが作成されます。keys に重複する要素が含まれている場合、重複する最後の要素の対応する値が割り当てられます。

    値。スカラーまたは配列として指定します。values の個々の要素は、同じデータ型のスカラーでなければなりません。値を異種混合または非スカラーにする必要がある場合は、cell 配列を使用します。

    values が配列の場合、各要素によって新しい値が作成されます。keys が配列で values がスカラーの場合、その値は keys の各キーにマッピングされます。

    キーと値のペア。キーと値のスカラーおよび配列の個別の引数として指定します。すべてのキー引数は、同じデータ型または互換性のあるデータ型でなければなりません。すべての値引数は、同じデータ型または互換性のあるデータ型でなければなりません。

    オブジェクト関数

    entriesKey-value pairs of dictionary
    keysKeys of dictionary
    valuesValues of dictionary
    typesTypes of dictionary keys and values
    numEntriesNumber of key-value pairs in dictionary
    isConfiguredDetermine if dictionary has types assigned to keys and values
    isKeyDetermine if dictionary contains key

    すべて折りたたむ

    さまざまな車両の車輪数を格納するディクショナリを作成します。

    名前の配列と対応する車輪数の配列を作成します。

    wheels = [1 2 3];
    names = ["Monocycle" "Bicycle" "Tricycle"];

    名前をキーとして、車輪数を値として使用してディクショナリを作成します。

    d = dictionary(names,wheels)
    d = 
      dictionary (string ⟼ double) with 3 entries:
    
        "Monocycle" ⟼ 1
        "Bicycle"   ⟼ 2
        "Tricycle"  ⟼ 3
    
    

    キーをインデックスとして使用して、ディクショナリの値にアクセスします。

    d("Tricycle")
    ans = 3
    

    新しい値を既存のキーに割り当ててエントリを変更できます。

    d("Bicyle") = 2.5
    d = 
      dictionary (string ⟼ double) with 4 entries:
    
        "Monocycle" ⟼ 1
        "Bicycle"   ⟼ 2
        "Tricycle"  ⟼ 3
        "Bicyle"    ⟼ 2.5000
    
    

    値をキーに割り当てて新しいエントリをディクショナリに追加します。

    d("Car") = 4
    d = 
      dictionary (string ⟼ double) with 5 entries:
    
        "Monocycle" ⟼ 1
        "Bicycle"   ⟼ 2
        "Tricycle"  ⟼ 3
        "Bicyle"    ⟼ 2.5000
        "Car"       ⟼ 4
    
    

    キーと値の配列を使用して複数のエントリを追加します。

    names2 = ["Truck" "Motorcycle" "Sixteen-Wheeler"];
    wheels2 = [4 2 16];
    d(names2) = wheels2
    d = 
      dictionary (string ⟼ double) with 8 entries:
    
        "Monocycle"       ⟼ 1
        "Bicycle"         ⟼ 2
        "Tricycle"        ⟼ 3
        "Bicyle"          ⟼ 2.5000
        "Car"             ⟼ 4
        "Truck"           ⟼ 4
        "Motorcycle"      ⟼ 2
        "Sixteen-Wheeler" ⟼ 16
    
    

    空の配列を既存のキーに割り当ててエントリを削除します。

    d("Truck") = []
    d = 
      dictionary (string ⟼ double) with 7 entries:
    
        "Monocycle"       ⟼ 1
        "Bicycle"         ⟼ 2
        "Tricycle"        ⟼ 3
        "Bicyle"          ⟼ 2.5000
        "Car"             ⟼ 4
        "Motorcycle"      ⟼ 2
        "Sixteen-Wheeler" ⟼ 16
    
    

    新しいエントリは、ディクショナリの設定されたデータ型と一致するように自動変換されます。変換できない場合、MATLAB はエラーをスローします。

    d('Spider-Car') = "8"
    d = 
      dictionary (string ⟼ double) with 8 entries:
    
        "Monocycle"       ⟼ 1
        "Bicycle"         ⟼ 2
        "Tricycle"        ⟼ 3
        "Bicyle"          ⟼ 2.5000
        "Car"             ⟼ 4
        "Motorcycle"      ⟼ 2
        "Sixteen-Wheeler" ⟼ 16
        "Spider-Car"      ⟼ 8
    
    

    ディクショナリの値は同じ型でなければなりません。ただし、型が異なるデータは cell としてディクショナリに格納できます。

    さまざまなデータ型を含む cell 配列とキーの string 配列を作成します。

    myValues = {datetime,@myfun,struct,[1 2 3 4]}
    myValues=1×4 cell array
        {[25-Oct-2022 13:41:06]}    {@myfun}    {1x1 struct}    {[1 2 3 4]}
    
    
    myKeys = ["my birthday" "my favorite function" "a structure" "numeric array"]
    myKeys = 1x4 string
        "my birthday"    "my favorite func..."    "a structure"    "numeric array"
    
    

    指定したキーと値を使用してディクショナリを作成します。

    d = dictionary(myKeys,myValues)
    d = 
      dictionary (string ⟼ cell) with 4 entries:
    
        "my birthday"          ⟼ {[25-Oct-2022 13:41:06]}
        "my favorite function" ⟼ {@myfun}
        "a structure"          ⟼ {1x1 struct}
        "numeric array"        ⟼ {[1 2 3 4]}
    
    

    関数 values を使用して、値を cell 配列として抽出します。

    values(d)
    ans=4×1 cell array
        {[25-Oct-2022 13:41:06]}
        {                @myfun}
        {1x1 struct            }
        {[             1 2 3 4]}
    
    

    入力なしで dictionary を呼び出すと、未設定のディクショナリが作成されます。

    目的の型をもつ空の入力を指定して、空の設定済みディクショナリを作成します。

    d = dictionary(string([]),[])
    d = 
      dictionary (string ⟼ double) with no entries.
    
    

    このディクショナリは設定済みで、データ型が一致するか設定済みディクショナリのデータ型に変換可能な限り、新しいエントリを追加できます。

    d("Unicycle") = 1;
    d("Bicycle") = 2;
    d("Tricyle") = 3
    d = 
      dictionary (string ⟼ double) with 3 entries:
    
        "Unicycle" ⟼ 1
        "Bicycle"  ⟼ 2
        "Tricyle"  ⟼ 3
    
    

    入力なしで dictionary を呼び出して、未設定のディクショナリを作成します。

    d = dictionary
    d = 
      dictionary with unset key and value types.
    
    

    未設定のディクショナリにエントリを追加すると、MATLAB によってディクショナリが設定済みに変更されます。

    names = ["Unicycle" "Bicycle" "Tricyle"];
    wheels = [1 2 3];
    d(wheels) = names
    d = 
      dictionary (double ⟼ string) with 3 entries:
    
        1 ⟼ "Unicycle"
        2 ⟼ "Bicycle"
        3 ⟼ "Tricyle"
    
    

    バージョン履歴

    R2022b で導入