主要内容

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

setxor

2つの配列の排他的論理和のセット

説明

C= setxor (A、Bは,一个Bの交差(対称差)にないデータを繰り返さずに返します。つまり,setxorは,一个Bの両方ではなく,そのどちらか一方に出現するデータを返します。Cは,並べ替えた順序になります。

  • 一个Bが表または时间表の場合,setxorは2つの表の両方ではなく,どちらか一方に出現する行を返します。时间表の場合,setxorは行時間を考慮して等価性を判別し,出力时间表Cを行時間で並べ替えます。

C= setxor (A、BsetOrderは,特定の順序でCを返します。setOrderには“排序”または“稳定”を指定できます。

C= setxor (A、B___, '行')C= setxor (A、B“行”,___は,一个Bの各行を1つのエンティティとして扱い,一个Bの交差部分に存在しない行を繰り返さずに返します。一个Bは必ず指定しなければなりません。setOrderはオプションで指定できます。

入力がいずれも直言配列またはdatetime配列でない場合,“行”オプションは细胞配列をサポートしません。

Ciaib) = setxor (___はまた,前述の任意の構文を使用してインデックスベクトルiaおよびibも返します。

  • 一般に,Cの値は,(ia)B (ib)の要素の組み合わせを並べ替えたものです。

  • “行”オプションを指定した場合,Cは,:一个(ia): B (ib)の行の組み合わせを並べ替えたものになります。

  • 一个Bが表または时间表の場合,C:一个(ia): B (ib)の行の組み合わせを並べ替えたものになります。

Ciaib) = setxor (A、B“遗产”)Ciaib) = setxor (A、B、“行”、“遗产”)は,R2012bおよびそれ以前のリリースの関数setxorの動作を保持します。

“遗产”オプションは直言配列,datetime配列,持续时间配列,表または时间表をサポートしません。

すべて折りたたむ

共通の値を1つもつ2つのベクトルを定義します。

A = [5 1 3 3 3];B = [4 1 2];

交差部分にない一个Bの値を検索します。

C = setxor (A, B)
C =1×42 3 4 5

共通の行をもつ2つのテーブルを定義します。

一个=表([1:5],[“一个”“B”“C”' D '“E”),逻辑([0,1,0,1,0]))
一个=5×3表Var1 Var2 Var3 ____ ____ _____ 1 A false 2 B true 3 C false 4 D true 5 E false
B =表([1:2:10],[“一个”“C”“E”‘G’“我”),逻辑(0(5、1)))
B =5×3表Var1 Var2 Var3 ____ ____ _____ 1 A假3 C假5 E假7 G假9 I假

交差部分にない一个Bの行を求めます。

C = setxor (A, B)
C =4×3表Var1 Var2 Var3 ____ ____ _____ 2 B真4 D真7 G假9 I假

共通の値を1つもつ2つのベクトルを定義します。

A = [5 1 3 3 3];B = [4 1 2];

交差部分にない一个Bの値や,iaibなどのインデックスベクトルを検索します。

[C ia ib] = setxor (A, B)
C =1×42 3 4 5
ia =2×13个1
ib =2×13个1

Cは,要素(ia)B (ib)を並べ替えた組み合わせです。

5人の性別,年齢および身長の表一个を定義します。

([=表“米”“米”“F”]、[27;52;31],(74;68;64),...“VariableNames”,{“性别”“年龄”“高度”},...“RowNames”,{“泰德”“弗雷德”“贝蒂”})
一个=3×3表性别年龄身高______ ___ ______ Ted M 27 74 Fred M 52 68 Betty F 31 64

一个と同じ変数をもつ表Bを定義します。

([B =表“F”“米”]、[64;68],[31;47],...“VariableNames”,{“性别”“高度”“年龄”},...“RowNames”,{梅格的“乔”})
B =2×3表性别身高年龄______ ______ ___ Meg F 64 31 Joe M 68 47

交差部分にない一个Bの行およびインデックスベクトルiaibを求めます。

[C ia ib] = setxor (A, B)
C =3×3表性别年龄身高______ ___ ______ Ted M 27 74 Joe M 47 68 Fred M 52 68
ia =2×11 2
ib = 2

Cは,要素:一个(ia): B (ib)を並べ替えた組み合わせです。

共通の行をもつ2つの行列を定義します。

A = [7 8 9;7 7 1;7 7 1;1 2 3;4 5 6];B = [1 2 3];4 5 6;7 7 2];

交差部分にない一个Bの行や,iaibなどのインデックスベクトルを検索します。

[C ia ib] = setxor (A, B,“行”
C =3×37 7 1 7 7 2 7 8 9
ia =2×12 1
ib = 3

Cは,:一个(ia): B (ib)の行を並べ替えた組み合わせです。

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

Cの値を一个Bと同じ順序にする場合,“稳定”を指定します。

A = [5 1 3 3 3];B = [4 1 2];[C ia ib] = setxor (A, B,“稳定”
C =1×45 3 4 2
ia =2×11 3
ib =2×11 3

または,関数“排序”を指定できます。

[C ia ib] = setxor (A, B,“排序”
C =1×42 3 4 5
ia =2×13个1
ib =2×13个1

を含む2つのベクトルを定義します。

A = [5 NaN NaN];B = [5 NaN NaN];

一个Bのベクトルの対称差を検索します。

C = setxor (A, B)
C =1×4南南南

関数setxor値を個別のものとして処理します。

文字ベクトルの细胞配列一个を作成します。

一个= {“狗”“猫”“鱼”“马”};

文字ベクトルの细胞配列Bを作成します。一部のベクトルは末尾に空白文字があります。

B = {“狗”“猫”“鱼”“马”};

一个Bの交差部分にない文字ベクトルを検索します。

[C ia ib] = setxor (A, B)
C =1 x4单元格{'dog'} {'dog'} {'fish'} {'fish'}
ia =2×11 3
ib =2×11 3

setxorは,文字ベクトルの细胞配列内の末尾の空白文字を別個の文字として処理します。

列ベクトル文字配列を作成します。

= (“一个”“B”“C”),类(一)
一个=3 x1 char数组“A”“B”“C”
ans = '字符'

数値型の要素を含む行ベクトルを作成します。

B = [66 67 68], class(B)
B =1×366 67 68
ans =“双”

一个Bの対称差を検索します。

C = setxor (A, B)
C =2 x1 char数组' A ' ' D '

結果は,列ベクトルの文字配列です。

类(C)
ans = '字符'

文字ベクトル一个を作成します。

= (“猫”“狗”“狐狸”“猪”];类(一)
ans = '字符'

文字ベクトルの细胞配列Bを作成します。

B = {“狗”“猫”“鱼”“马”};类(B)
ans =“细胞”

一个Bの交差部分にない文字ベクトルを検索します。

C = setxor (A, B)
C =4 x1细胞{'鱼'}{'狐狸'}{'马'}{'猪'}

結果のCは,文字ベクトルの细胞配列になります。

类(C)
ans =“细胞”

“遗产”フラグを使用して,コード内のR2012bおよびそれ以前のリリースのsetxorの動作を保持します。

現在の動作における一个Bの対称差を検出します。

A = [5 1 3 3 3];B = [4 1 2 2];[C1, ia1 ib1] = setxor (A, B)
C1 =1×42 3 4 5
ia1 =2×13个1
ib1 =2×13个1

対称差を検出し,レガシ動作を維持します。

[C2, ia2 ib2] = setxor (A, B,“遗产”
C2 =1×42 3 4 5
ia2 =1×25 1
ib2 =1×24 1

入力引数

すべて折りたたむ

入力配列。数値配列、合理的配列、文字配列、字符串配列、绝对配列、datetime配列、时间配列、文字ベクトルの细胞配列、表格または timetable として指定します。“行”オプションを指定した場合,一个およびBは同じ数の列をもたなければなりません。

一个およびBは次の例外を伴う同一クラスに属していなければなりません。

  • 逻辑字符,およびすべての数値クラスは配列と組み合わせることができます。

  • 文字ベクトルの细胞配列は,文字配列または字符串配列と組み合わせることができます。

  • 绝对配列は,文字配列,文字ベクトルの细胞配列または字符串配列と組み合わせることができます。

  • datetime配列は,日付文字ベクトルの细胞配列または単一の日付文字ベクトルと組み合わせることができます。

一个Bには,データ型に基づく追加の要件があります。

  • 一个Bの両方が順序分类配列である場合は,順序を含めて同じカテゴリセットでなければなりません。一个Bの両方が順序配列でない場合,同じカテゴリセットをもつ必要はなく,カテゴリ名を使用して比較が実行されます。この場合,Cのカテゴリは,一个およびBからのカテゴリの和集合を並べ替えたものになります。

  • 一个Bが表または时间表の場合,その変数名は同じでなければなりません(順序は除く)。表の場合,行名は無視されるため,値が同じで名前が異なる2つの行は等しいと見なされます。时间表の場合,行時間が考慮されるため、値が同じで時間が異なる 2 つの行は、等しくないと見なされます。

  • 一个Bがdatetime配列の場合,タイムゾーンの指定が互いに一貫していなければなりません。

また,一个およびBは次のクラスメソッドをもつオブジェクトにすることもできます。

  • 排序(または“行”オプションのsortrows

  • 情商

オブジェクトクラスのメソッドは,相互に一貫していなければなりません。これらのオブジェクトは,同じルートクラスから導出した異種混合配列を含みます。たとえば,一个およびBはグラフィックスオブジェクトのハンドルの配列にすることができます。

“排序”または“稳定”として指定される順序フラグは,Cで値(または行)の順序を示します。

フラグ 説明
“排序”

Cはの値(または行),排序により返されるような並べ替えられた順序で返されます。

C = setxor([5 1 3],[4 1 2],“排序”
3 .答案:C

“稳定”

Cはの値(または行)一个Bの順に,その中に出現するものと同じ順序で返されます。

C = setxor([5 1 3],[4 1 2],“稳定”
2 .答案为C

データ型:字符|字符串

出力引数

すべて折りたたむ

対称差配列。ベクトル,行列または表または时间表として返されます。入力一个およびBが表または时间表の場合,Cの変数の順番は,一个の変数の順番と同じになります。

入力がベクトルまたは行列で,“遗产”フラグを指定していないときのCの形状を次に説明します。

  • “行”フラグを指定していない場合,Cは列ベクトルです。例外として,一个Bの両方が行ベクトルの場合,Cは行ベクトルになります。たとえば,setxor ([], [1 - 2])は列ベクトルを返します。

  • “行”フラグを指定した場合,Cは,交差部分に含まれない一个Bの行を含む行列です。

  • 一个のすべての値(または行)がBにも存在する場合,Cは空です。

一个Bの入力のクラスによって,Cのクラスが決まります。

  • 一个Bのクラスが同じである場合,Cは同じクラスになります。

  • 字符または非倍精度数値クラスをと組み合わせる場合,Cは非倍精度入力と同じクラスになります。

  • 逻辑クラスをと組み合わせる場合,Cになります。

  • 文字ベクトルの细胞配列を字符と組み合わせる場合,Cは文字ベクトルの细胞配列になります。

  • 绝对配列を文字ベクトル,文字ベクトルの细胞配列または字符串と組み合わせる場合,Cは直言配列になります。

  • datetime配列を日付文字ベクトルの细胞配列または単一の日付文字ベクトルと組み合わせる場合,Cはdatetime配列になります。

  • 字符串配列を文字ベクトルまたは文字ベクトルの细胞配列と組み合わせる場合,Cは字符串配列になります。

“遗产”フラグを指定していないときに列ベクトルとして返される,一个へのインデックス。iaは,対称差に寄与する一个内の値(または行)を特定します。一个内だけに出現する繰り返しの値(または行)がある場合,iaは値(または行)の最初の出現位置に対するインデックスを含みます。

“遗产”フラグを指定していないときに列ベクトルとして返される,Bへのインデックス。ibは,対称差に寄与するB内の値(または行)を特定します。B内だけに出現する繰り返しの値(または行)がある場合,ibは値(または行)の最初の出現位置に対するインデックスを含みます。

ヒント

  • 表または时间表の変数のサブセットに関する対称差を求めるには,列の添字を使用できます。たとえば,setxor ((:,var), B (:,var))を使用できます。ここで,varは,正の整数,正の整数のベクトル,変数名,変数名の细胞配列または逻辑ベクトルです。あるいはvartypeを使用して,指定したタイプの変数を選択する添字を作成することもできます。

拡張機能

R2006aより前に導入