Main Content

setxor

クラス: dataset

(非推奨) データセット配列の観測の排他的論理和集合

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

構文

C = setxor(A,B)
C = setxor(A,B,vars)
C = setxor(A,B,vars,setOrder)
[C,iA,iB] = setxor(___)

説明

C = setxor(A,B) は、dataset 配列 AB について、2 つの配列の交差部分に含まれない観測値のセットから重複を除いたものを返します。データセット配列 C の観測値は並べ替えられています。

C = setxor(A,B,vars) は、vars で指定された変数のみを考慮した上で、2 つの配列の交差に含まれない観測値のセットから重複を除いたものを返します。データセット配列 C の観測値は、これらの変数に基づいて並べ替えられます。C の各観測の vars で指定されていない変数の値は、A または B の対応する観測から取得します。A または B に、C の観測に対応する観測が複数ある場合、その最初の観測からの値が使用されます。

C = setxor(A,B,vars,setOrder) は、C の観測値を setOrder で指定された順序で返します。

[C,iA,iB] = setxor(___) は、C A(iA,:)B(iB,:) の値の並べ替えられた組み合わせになるような、インデックス ベクトル iA および iB も返します。A または B で重複した観測値があると、setxor はその最初の出現位置のインデックスを返します。前の入力引数のいずれも使用できます。

入力引数

A,B

入力データセット配列。

vars

変数名が含まれている文字ベクトルの cell 配列または string 配列、または変数の列番号が含まれている整数のベクトル。vars は、setxor で考慮する A および B 内の変数を指定します。

すべての変数の既定値を使用するには、vars[] として指定します。

setOrder

C の観測値の並べ替え順序を指定するフラグ。setOrder で使用できる値は以下のとおりです。

'sorted'C の観測値は並べ替えられた順番になります (既定の設定)。
'stable'C の観測値はまず A 内の出現順、次に B 内の出現順に配置されます。

出力引数

C

AB の交差にはない観測値から、重複を除いたデータセット配列。C は並べ替えられた順になるか (既定の設定)、setOrder で指定された順序に並べ替えられます。

iA

C にある A からの観測値を特定するインデックス ベクトル。A に重復観測値があると、ベクトル iA には、その最初の出現値に対するインデックスが格納されます。

iB

C にある B からの観測値を特定するインデックス ベクトル。B に重復観測値があると、ベクトル iB には、その最初の出現値に対するインデックスが格納されます。

すべて展開する

スカラー構造体配列を 1 つ作成し、それを 2 つのデータセット配列に変換します。

S(1,1).Name = 'CLARK';
S(1,1).Gender = 'M';
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = 'BROWN';
S(2,1).Gender = 'F';
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = 'MARTIN';
S(3,1).Gender = 'M';
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

A = struct2dataset(S(1:2));
B = struct2dataset(S(2:3));

AB の交差は 2 番目の観測値 (BROWN という姓のデータ) です。

AB の対称差を返します。

[C,iA,iB] = setxor(A,B);
C
C = 
    Name              Gender       SystolicBP    DiastolicBP
    {'CLARK' }        {'M'}        124           93         
    {'MARTIN'}        {'M'}        130           92         

[iA iB]
ans = 1×2

     1     2

この対称差には、A からの最初の観測値および B からの 2 番目の観測値が含まれています。