主要内容

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

setdiff.

2つのつの配列の差差合

说明

C= setdiff(A,Bは,B.にない一种ののデータを缲り返さ缲り返さずに返し返しCは并べ替えた顺序にますます。

  • 一种B.が表または时间表のの合,setdiff.は,一种の行のうちB.に含まれない行を返します。时间表の場合、setdiff.は行時間を考慮して等価性を判別し,出力时间表Cを行时间で并べ替えます。

C= setdiff(A,BsetOrderは,特定の順序でCを返します。setOrderには'排序'または'稳定的'を指定できます。

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

入力がいずれもも分类配列配列DateTime配列配列でない合并,'行'オプションオプション细胞配列をサポートしません。

また,[CIA.) = setdiff (___はは前述の构构ののいずれをを使使インデックスインデックスインデックスインデックスインデックスインデックスインデックスIA.を返します。

  • 通讯はC = (ia)

  • '行'オプションが指定されれいるている合书,c = a(ia,:)

  • 一种またはB.が表または时间表のの合,c = a(ia,:)

[CIA.) = setdiff (A,B“遗产”)[CIA.) = setdiff (A,B、“行”、“遗产”)は,r2012bおよびおよびそれのリリースのの关联关词setdiff.の动作を保持ます。

'遗产'オプションは分类配列,datetime配列,持续时间配列,表または时间表ををサポートしませませ。

すべて折りたたむ

共通の値をもつ2つのベクトルを定义し。

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

B.内になく一种内内にある値値を検索しし

c = setdiff(a,b)
C =1×31 3 5.

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

a =表([1:5]',[“一个”;“B”;“C”;' D ';“E”],逻辑([0; 1; 0; 1; 0]))
A =5×3表Var1 Var2 Var3 ____ ____ _____ 1 A假2 B真3 C假4 D真5 E假
B =表([1:2:10]',[“一个”;“C”;“E”;‘G’;“我”),逻辑(0(5、1)))
B =5×3表var1 var2 var3 ____ ____ _____ 1 a false 3 c false 5 e false 7 g false 9 i false

B.内になく一种内にある行をますます。

c = setdiff(a,b)
C =2×3表Var1 Var2 Var3 ____ ____ _____ 2 B true 4 D true

共通の値をもつ2つのベクトルを定义し。

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

B.になく一种にある値と,C = (ia)となるインデックスベクトルIA.を求めます。

[c,ia] = setdiff(a,b)
C =1×31 3 5.
ia =3×14 1 5.

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

a =表([“米”;“米”;“F”;“米”;“F”],[27; 52; 31; 46; 35],[74; 68; 64; 61; 64],...“VariableNames”,{“性别”'年龄'“高度”},...“RowNames”,{'ted''弗雷德''贝蒂'“鲍勃”“朱迪”})
A =5×3表性别年龄身高______ ___ ______泰德M 27 74弗雷德M 52 68贝蒂F 31 64鲍勃M 46 61朱迪F 35 64

一种とと数量をもつ表B.を定义します。

b =表([“F”;“米”;“F”;“F”],[64; 68; 62; 58],[31; 47; 35; 23],...“VariableNames”,{“性别”“高度”'年龄'},...“RowNames”,{梅格的“乔”“贝丝”“艾米”})
B =4×3表性别高度______ ______ ___ ___ meg f 64 31 joe m 68 47 beth f 62 35 amy f 58 23

B.になく一种にある行と,c = a(ia,:)となるインデックスベクトルIA.を求めます。

[c,ia] = setdiff(a,b)
C =4×3表性别年龄身高______ ___ ______朱迪F 35 64泰德M 27 74鲍勃M 46 61弗雷德M 52 68
ia =4×15 1 4 2

Cの行は,最初に性别,その次に年龄による並べ替え順になります。

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

a = [7 9 7;0 0 0;7 9 7;5 5 5;1 4 5];B = [0 0 0;5 5 5];

B.になく一种にある行と,c = a(ia,:)となるインデックスベクトルIA.を求めます。

[c,ia] = setdiff(a,b,'行'
C =2×31 4 5 7 9 7
ia =2×15个1

setOrder引数を使ってCのの値の顺序顺序を指定しし

C内内の値のの顺序が重要なときに,'稳定的'または'排序'を指定します。

A = [3 6 2 1 5 1 1];B = [2 4 6];[c,ia] = setdiff(a,b,'稳定的'
C =1×33 1 5.
ia =3×11 4 5.

または,关节'排序'を指定できます。

[c,ia] = setdiff(a,b,'排序'
C =1×31 3 5.
ia =3×14 1 5.

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

A =[5楠楠];B =[5楠];

一种B.の差集合を検索します。

c = setdiff(a,b)
C =1×2南纳

setdiff.値値を个别ののものとしてとしてとしてしし

文库ベクトルベクトル细胞配列一种を作物成し。

一个= {'狗''猫''鱼''马'};

文库ベクトルベクトル细胞配列B.を作物成し。一流のベクトルはに空白字ががあり。

B = {'狗 ''猫''鱼 ''马'};

B.にない一种の文字ベクトルを见つけます。

[c,ia] = setdiff(a,b)
C =1x2细胞{'狗'} {'鱼'}
ia =2×11 3.

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

文件ベクトル一种を作物成し。

= ('猫';'狗';“狐狸”;“猪”];班级(a)
ans ='char'

文库ベクトルベクトル细胞配列B.を作物成し。

B = {'狗''猫''鱼''马'};班级(b)
ans =“细胞”

B.にない一种の文字ベクトルを见つけます。

c = setdiff(a,b)
C =2 x1细胞{“福克斯”}{'猪'}

结果のCは,文件ベクトルの细胞配列配列なります。

班级(c)
ans =“细胞”

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

在第动作における一种B.の差を検出します。

A = [3 6 2 1 5 1 1];B = [2 4 6];[C1, ia1] = setdiff (A, B)
C1 =1×31 3 5.
IA1 =3×14 1 5.

一种B.の差を検出し,レガシ动作を维持ます。

[C2,IA2] = SetDiff(A,B,'遗产'
C2 =1×31 3 5.
IA2 =1×37 1 5

入力引数

すべて折りたたむ

入力配列。数码配列,逻辑配列,文章配列,字符串配列,分类配列,datetime配列,持续时间配列,文档ベクトルのの,表または时间表として指定ます。'行'オプションを指定したた合,一种およびB.はは数量のをもたなければばません。

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

  • 逻辑字符,およびすべての数码クラスは配列とと合。

  • 文库ベクトルベクトル细胞配列配列,文章配列または弦またはと组みわせることができます。

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

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

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

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

  • 一种B.が表または时间表のの合,その函数名称は同じでなけれなりません(顺序顺序除く).tableのの合,行业无视されるため,値が同じ名前が异なる2つの行は等しいと见なされます。可测量のの合,行时间が考虑さため,値が同じで时间が异なる2つの行は,等しく等しくと见なされ。

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

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

  • 种类(または'行'オプションのsortrows

  • eq.

  • NE.

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

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

フラグ 说明
'排序'

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

C = setdiff([4 1 3 2 5],[2 1]),'排序'
答案:C

'稳定的'

Cの値(または行)は一种と同じ順序で返されます。

C = setdiff([4 1 3 2 5],[2 1]),'稳定的'
答案:C

データ型:字符|字符串

出力数

すべて折りたたむ

一种B.の差。ベクトル,行程,表または时间表として返されます。能力一种およびB.が表または时间表のの合,Cのの数のの顺番,一种の驰数の顺番と同じになります。

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

  • '行'フラグフラグを指定ししておら,一种が行ベクトルの場合,Cは行ベクトルです。

  • '行'フラグフラグを指定ししておら,一种が行ベクトルでない综合,Cは列ベクトルです。

  • '行'を指定した場合,Cは,B.には含まれない一种の行を含む行列です。

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

Cのクラスは,以下の場合を除き,一种のクラスと同じです。

  • 一种が文字配列で,B.が文字ベクトルの细胞配列の場合,Cは文字ベクトルの细胞配列です。

  • 一种が文字ベクトル,文章ベクトルの细胞配列配列弦で,B.が分类配列配列の合,Cは分类配列です。

  • 一种が文字ベクトルの细胞配列配列又一次文章ベクトルで,B.がDateTime配列配列场合,Cはdatetime配列配列。

  • 一种が文字ベクトルまたは字ベクトルの细胞配列で,B.が字符串配列の場合,Cは字符串配列です。

'遗产'フラグを指定していないときに列ベクトルとして返される,一种へへインデックス。IA.は,B.とと通でない,一种内の値(または行)を特定します。一种内だけに出现する缲り返しのの(または行)ががある合,IA.は値(または行)の最初の出現位置に対するインデックスを含みます。

ヒント

  • 表または时间表の変数のサブセットに関する差集合を求めるには,列の添字を使用できます。たとえば,setdiff(a(:,vars.),B(:,vars.)))を使用できます。ここで,vars.は,正のの数,正数,幂名,幂名の细胞配列または逻辑ベクトルベクトル。あるいはvartype.を使使し,指定指定したタイプののをする添字作物

拡張機能

R2006aより前に導入