Main Content

ismember

クラス: dataset

(非推奨) 集合内のメンバーであるデータセット配列要素

dataset データ型は推奨されません。異種混合データを処理するには、代わりに MATLAB® table データ型を使用します。詳細は、MATLAB table ドキュメンテーションを参照してください。

構文

LiA = ismember(A,B)
LiA = ismember(A,B,vars)
[LiA,LocB] = ismember(___)

説明

LiA = ismember(A,B) は、dataset 配列 A および B について、A と同じ長さの logical 値のベクトルを返します。出力ベクトル LiA の値は、A 内の対応する観測値が B 内にも存在する要素の場合は 1 (真) になり、それ以外の場合は 0 (偽) になります。

LiA = ismember(A,B,vars) の場合、A と同じサイズの論理値のベクトルが返されます。出力ベクトル LiA のもつ値は、A 内にある観測値の要素の中で、vars で指定された変数のみが B にも存在する場合は 1 (真) になり、それ以外の場合は 0 (偽) になります。

[LiA,LocB] = ismember(___) は、インデックスを含めて A と同じ長さのベクトルも返します。このベクトルに含まれる各要素は、対応する A 内の各観測値に対し、B 内にも存在する場合はその最初の観測値のインデックスになり、そうした観測値がない場合は 0 になります。前の入力引数のいずれも使用できます。

入力引数

A

B で検索する観測値を含む、クエリ データセット配列。

B

集合データセット配列。A の観測値が、すべての変数または vars で指定された変数について B にも存在する場合、LiA に対応する要素は 1 になります。

vars

変数名が含まれている文字ベクトルの cell 配列または string 配列、または変数の列番号が含まれている整数のベクトル。vars は、A および B 内のどの観測値に対して変数を比較するかを指定します。

出力引数

LiA

A と同じ長さの論理値のベクトル。LiA には、A での対応する観測が B にも存在する場合、1 (真) の値が設定されます。それ以外の場合、LiA の値は 0 (偽) になります。

vars を指定する場合、A において対応する観測値が vars 内の変数のみについて B にも存在する場合、LiA の値が 1 になります。

LocB

A と同じ長さのベクトル。A の各観測値に対し、すべての変数または vars で指定された変数のみについて、B 内に存在する最初の観測値へのインデックスが含まれます。

すべて展開する

標本データを読み込みます。

load('hospital')
B = hospital(1:50,1:5);

この集合データセット配列 B は 50 個の観測値と 5 個の変数をもちます。

クエリ データセット配列を指定します。

rng('default')
rIx = randsample(100,10);
A = hospital(rIx,1:5)
A = 
               LastName             Sex       Age    Weight    Smoker
    YLN-495    {'COLEMAN'  }        Male      39     188       false 
    LQW-768    {'TAYLOR'   }        Female    31     132       false 
    DGC-290    {'BUTLER'   }        Male      38     184       true  
    DAU-529    {'REED'     }        Male      50     186       true  
    REV-997    {'ALEXANDER'}        Male      25     171       true  
    QEQ-082    {'COX'      }        Female    28     111       false 
    AGR-528    {'SIMMONS'  }        Male      45     181       false 
    PUE-347    {'YOUNG'    }        Female    25     114       false 
    HVR-372    {'RUSSELL'  }        Male      44     188       true  
    XUE-826    {'JACKSON'  }        Male      25     174       false 

A の観測値のうち、どれが B に存在するかをチェックします。

LiA = ismember(A,B)
LiA = 10x1 logical array

   0
   1
   0
   0
   0
   0
   0
   1
   0
   1

A の観測値のうち B に存在するものを表示します。

A(LiA,:)
ans = 
               LastName           Sex       Age    Weight    Smoker
    LQW-768    {'TAYLOR' }        Female    31     132       false 
    PUE-347    {'YOUNG'  }        Female    25     114       false 
    XUE-826    {'JACKSON'}        Male      25     174       false 

B での観測値の位置を取得します。

[~,LocB] = ismember(A,B)
LocB = 10×1

     0
    10
     0
     0
     0
     0
     0
    28
     0
    13

B の観測値のうち A の観測値に一致するものを表示します。

B(LocB(LocB>0),:)
ans = 
               LastName           Sex       Age    Weight    Smoker
    LQW-768    {'TAYLOR' }        Female    31     132       false 
    PUE-347    {'YOUNG'  }        Female    25     114       false 
    XUE-826    {'JACKSON'}        Male      25     174       false