ドキュメンテーション

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

unique

構文

  • C = unique(A)
  • C = unique(A,'rows')
  • [C,ia,ic] = unique(A)
  • [C,ia,ic] = unique(A,'rows')
  • [C,ia,ic] = unique(A,setOrder)
  • [C,ia,ic] = unique(A,'rows',setOrder)
  • [C,ia,ic] = unique(A,'legacy')
  • [C,ia,ic] = unique(A,'rows','legacy')
  • [C,ia,ic] = unique(A,occurrence,'legacy')
  • [C,ia,ic] = unique(A,'rows',occurrence,'legacy')

説明

C = unique(A)A と同じデータを繰り返しを除いて返します。

  • A が数値配列、論理配列、文字配列、カテゴリカル配列、datetime 配列、duration 配列または文字列のセル配列の場合、unique は、A の一意の値を返します。C の値は並べ替えられた順序になっています。

  • A がテーブルの場合、uniqueA の一意の行を返します。テーブル C の行は並べ替えられた順序になっています。

C = unique(A,'rows')A の各行を単一のエンティティとして扱い、A の一意の行を返します。配列 C の行は並べ替えられた順序になっています。

'rows' オプションはセル配列をサポートしません。

[C,ia,ic] = unique(A) は、インデックス ベクトル ia および ic も返します。

  • A が数値配列、論理配列、文字配列、カテゴリカル配列、datetime 配列、duration 配列または文字列のセル配列の場合、C = A(ia) かつ A = C(ic) です。

  • A がテーブルの場合、C = A(ia,:) かつ A = C(ic,:) です。

[C,ia,ic] = unique(A,'rows') は、C = A(ia,:) かつ A = C(ic,:) となるようなインデックス ベクトル ia および ic も返します。

[C,ia,ic] = unique(A,setOrder) および [C,ia,ic] = unique(A,'rows',setOrder) は、特定の順序で C を返します。setOrder='sorted' は並べ替えられた順序で C の値 (または行) を返します。setOrder='stable'A、さらに B と同じ順序で C の値 (または行) を返します。値が指定されていない場合、既定値は 'sorted' です。

[C,ia,ic] = unique(A,'legacy')[C,ia,ic] = unique(A,'rows','legacy')[C,ia,ic] = unique(A,occurrence,'legacy') および [C,ia,ic] = unique(A,'rows',occurrence,'legacy') は、R2012b およびそれ以前のリリースの関数 unique の動作を維持します。

'legacy' オプションはカテゴリカル配列またはテーブルをサポートしません。

すべて折りたたむ

ベクトルの一意の値

繰り返しの値を含むベクトルを定義します。

A = [9 2 9 5];

A の一意の値を求めます。

C = unique(A)
C =

     2     5     9

テーブルの一意の行

繰り返しのデータを含むテーブルを定義します。

Name = {'Fred';'Betty';'Bob';'George';'Jane'};
Age = [38;43;38;40;38];
Height = [71;69;64;67;64];
Weight = [176;163;131;185;131];

A = table(Age,Height,Weight,'RowNames',Name)
A = 

              Age    Height    Weight
              ---    ------    ------
    Fred      38     71        176   
    Betty     43     69        163   
    Bob       38     64        131   
    George    40     67        185   
    Jane      38     64        131   

A の一意の行を求めます。

C = unique(A)
C = 

              Age    Height    Weight
              ---    ------    ------
    Bob       38     64        131   
    Fred      38     71        176   
    George    40     67        185   
    Betty     43     69        163   

unique は、最初に変数 Age、その次に 2 番目の変数 Height に基づいて、並べ替えられた順序に A の行を返します。

一意の値とそのインデックス

繰り返しの値を含むベクトルを定義します。

A = [9 2 9 5];

A の一意の値および C = A(ia) および A = C(ic) であるインデックス ベクトル iaic を求めます。

[C, ia, ic] = unique(A)
C =

     2     5     9


ia =

     2
     4
     1


ic =

     3
     1
     3
     2

行列の一意の行

繰り返しの行を含む行列を定義します。

A = [9 2 9 5; 9 2 9 0; 9 2 9 5];

A の一意の行および C = A(ia,:) および A = C(ic,:) であるインデックス ベクトル iaic を求めます。

[C, ia, ic] = unique(A,'rows')
C =

     9     2     9     0
     9     2     9     5


ia =

     2
     1


ic =

     2
     1
     2

929 の要素が他の行で繰り返されていても、A の 2 番目の行は一意として識別されることに注意してください。

指定した順序のベクトルの一意の値

setOrder 引数を使って C の値の順序を指定します。

C の値を A の値と同じ順序にする場合、'stable' を指定します。

A = [9 2 9 5];
[C, ia, ic] = unique(A,'stable')
C =

     9     2     5


ia =

     1
     2
     4


ic =

     1
     2
     1
     3

または、関数 'sorted' を指定できます。

[C, ia, ic] = unique(A,'sorted')
C =

     2     5     9


ia =

     2
     4
     1


ic =

     3
     1
     3
     2

NaN を含む配列の一意の値

NaN を含むベクトルを定義します。

A = [5 5 NaN NaN];

A の一意の値を求めます。

C = unique(A)
C =

     5   NaN   NaN

uniqueNaN 値を個別のものとして処理します。

文字列のセル配列に含まれる一意のエントリ

文字列のセル配列を定義します。

A = {'one','two','twenty-two','One','two'};

A に含まれる一意の文字列を検出します。

C = unique(A)
C = 

    'One'    'one'    'twenty-two'    'two'

末尾に空白文字がある文字列のセル配列

文字列のセル配列 A を定義します。一部の文字列の末尾には空白文字があります。

A = {'dog','cat','fish','horse','dog ','fish '};

A に含まれる一意の文字列を検出します。

C = unique(A)
C = 

    'cat'    'dog'    'dog '    'fish'    'fish '    'horse'

unique は、文字列のセル配列内の末尾の空白文字を別個の文字として処理します。

unique のレガシ動作の保持

'legacy' フラグを使用して、コード内の R2012b およびそれ以前のリリースの unique の動作を保持します。

現在の動作における A の一意の要素を検出します。

A = [9 2 9 5];
[C1, ia1, ic1] = unique(A)
C1 =

     2     5     9


ia1 =

     2
     4
     1


ic1 =

     3
     1
     3
     2

A の一意の要素を検出し、レガシ動作を保持します。

[C2, ia2, ic2] = unique(A, 'legacy')
C2 =

     2     5     9


ia2 =

     2     4     3


ic2 =

     3     1     3     2

入力引数

すべて折りたたむ

A — 入力配列数値配列 | 論理配列 | 文字配列 | カテゴリカル配列 | datetime 配列 | duration 配列 | 文字列のセル配列 | テーブル

入力配列。数値配列、論理配列、文字配列、カテゴリカル配列、datetime 配列、duration 配列、文字列のセル配列またはテーブルとして指定します。

A がテーブルの場合、unique では行の名前が考慮されません。値が同じで名前が異なる 2 つの行は、等しいと見なされます。

さらに、A は次のクラス メソッドをもつオブジェクトにすることができます。

  • sort (または 'rows' オプションの sortrows)

  • ne

オブジェクト クラスのメソッドは、相互に一貫していなければなりません。これらのオブジェクトは、同じルート クラスから導出した異なるタイプの配列を含みます。

setOrder — 順序フラグ'sorted' (既定値) | 'stable'

'sorted' または 'stable' として指定される順序フラグは、C で値 (または行) の順序を示します。

順序フラグ意味
'sorted'C の値 (または行) は並べ替えられた順序で返されます。以下に例を示します。C = unique([5 5 3 4],'sorted')C = [3 4 5] を返します。
'stable'C の値 (または行) は A と同じ順序で返されます。以下に例を示します。C = unique([5 5 3 4],'stable')C = [5 3 4] を返します。

occurrence — レガシ動作用の発生フラグ'last' (既定値) | 'first'

レガシ動作用の発生フラグは、'first' または 'last' として指定され、iaA で見つかった繰り返しの値の最初のインデックスを含めるか、最後のインデックスを含めるかを指定します。

発生フラグ意味
'last'A に繰り返しの値 (または行) がある場合、ia は繰り返しの値の最後の発生に対するインデックスを含みます。以下に例を示します。[C,ia,ic] = unique([9 9 9],'last','legacy')ia = 3 を返します。
'first'A に繰り返しの値 (または行) がある場合、ia は繰り返しの値の最初の発生に対するインデックスを含みます。以下に例を示します。[C,ia,ic] = unique([9 9 9],'first','legacy')ia = 1 を返します。

出力引数

すべて折りたたむ

CA の一意のデータベクトル | 行列 | テーブル

A の一意のデータ。ベクトル、行列またはテーブルとして返されます。入力 A がベクトルまたは行列の場合の C の形状を次に説明します。

  • 'rows' フラグを指定しておらず、A が行ベクトルの場合、C は行ベクトルです。

  • 'rows' フラグを指定しておらず、A が行ベクトルでない場合、C は列ベクトルです。

  • 'rows' フラグを指定した場合、CA の一意の行を含む行列です。

C のクラスは入力 A のクラスと同じです。

iaA のインデックス列ベクトル

A のインデックス。反復される要素の最初の発生に対するインデックスへの列ベクトルとして返されます。'legacy' フラグを指定した場合、ia は反復される要素の最後の発生に対するインデックスを含む行ベクトルです。

インデックスは、C = A(ia) (または 'rows' オプションの C = A(ia,:)) を満たします。

icC のインデックス列ベクトル

'legacy' フラグを指定していないときに列ベクトルとして返される C のインデックス。ic には、A = C(ic) ('rows' オプションの場合は A = C(ic,:)) であるインデックスが含まれます。

詳細

すべて折りたたむ

ヒント

  • 変数のサブセットに関するテーブル A の一意の行を求めるには、列の添字を使用できます。たとえば、unique(A(:,vars)) を使用できます。ここで、vars は、正の整数、正の整数のベクトル、変数名、変数名のセル配列または論理ベクトルです。

この情報は役に立ちましたか?