文档

setxor

设置两个数组的异或

描述

例子

C= setxor (A、B返回的数据一个B它们不在交点(对称差),没有重复。也就是说,setxor中出现的数据一个B,但不是两者都有。C是有序的。

  • 如果一个B那么是表格还是时间表呢setxor返回出现在两个表中的一个或另一个中,但不同时出现在两个表中的行。的航班时刻表,setxor考虑行时间以确定相等性,并对输出时间表进行排序C行乘以。

例子

C= setxor (A、BsetOrder返回C以特定的顺序。setOrder可以“排序”“稳定”

C= setxor (A、B___, '行')C= setxor (A、B“行”,___处理每一行一个每一行B的行,并返回一个B没有交集,没有重复。您必须指定一个B还可以指定setOrder

“行”选项不支持单元格数组,除非其中一金宝app个输入是类别数组或日期时间数组。

例子

Ciaib) = setxor (___也返回索引向量iaib使用任何前面的语法。

  • 的值C的元素的有序组合(ia)B (ib)

  • 如果“行”选项,那么C的行的排序组合:一个(ia): B (ib)

  • 如果一个B那么是表格还是时间表呢C的行的排序组合:一个(ia): B (ib)

例子

Ciaib) = setxor (A、B“遗产”)Ciaib) = setxor (A、B、“行”、“遗产”)的行为setxor函数来自R2012b和之前版本。

“遗产”选项不支持分类数组、日期时间数组金宝app、持续时间数组、表或时间表。

例子

全部折叠

定义两个具有共同值的向量。

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

求的值一个B它们不在交点上。

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

定义两个具有共同行的表。

一个=表([1:5],[“一个”“B”“C”' D '“E”),逻辑([0,1,0,1,0]))
一个=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假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假

定义两个具有共同值的向量。

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)

定义一个表,一个五个人的性别、年龄和身高。

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

定义一个表,B,用相同的变量一个

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

找出一个B它们不在它们的交点内,还有索引向量iaib

[C ia ib] = setxor (A, B)
C =3×3表性别年龄身高______ ___ ______泰德M 27 74乔M 47 68弗雷德M 52 68
ia =2×11 2
ib = 2

C是元素的有序组合吗:一个(ia): B (ib)

定义两个具有共同行的矩阵。

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

定义两个向量

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

求向量的对称差一个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 =“细胞”

使用“遗产”标志来保存的行为setxor从R2012b和之前版本的代码。

的对称差一个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

输入参数

全部折叠

输入数组,指定为数值数组、逻辑数组、字符数组、字符串数组、类别数组、日期时间数组、持续时间数组、字符向量、表格或时间表的单元格数组。如果指定“行”选项,一个B列数必须相同。

一个B必须属于同一个类,但有以下几种例外:

  • 逻辑字符,并且所有的数值类都可以与数组。

  • 字符向量的单元格数组可以与字符数组或字符串数组组合。

  • 分类数组可以与字符数组、字符向量的单元格数组或字符串数组组合。

  • 日期时间数组可以与日期字符向量的单元格数组或单个日期字符向量组合。

还有额外的要求一个B根据数据类型:

  • 如果一个B都是序数范畴数组,它们必须具有相同的类别集,包括它们的顺序。如果既不一个也不B是序数的,它们不需要具有相同的类别集,并且使用类别名称执行比较。在本例中,类别C是分类的排序并集吗一个B

  • 如果一个B无论是表还是时间表,它们必须具有相同的变量名(除了顺序)。对于表,行名被忽略,因此具有相同值但名称不同的两行被认为是相等的。对于时间表,要考虑行时间,因此具有相同值但时间不同的两行不被认为相等。

  • 如果一个B作为datetime数组,它们必须在是否指定时区方面彼此一致。

一个B也可以是具有以下类方法的对象:

  • 排序(或sortrows“行”选项)

  • 情商

对象类方法必须彼此一致。这些对象包括派生自同一根类的异构数组。例如,一个B可以是图形对象句柄的数组。

命令标志,指定为“排序”“稳定”中的值(或行)的顺序C

国旗 描述
“排序”

中的值(或行)C以返回的排序顺序返回排序

例子

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

“稳定”

中的值(或行)C以它们出现的相同顺序返回一个,然后B

例子

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

数据类型:字符|字符串

输出参数

全部折叠

对称差分数组,作为向量、矩阵、表或时间表返回。如果输入一个B表或时间表,那么变量的顺序C和变量的顺序一样吗一个

下面描述的形状C当输入是向量或矩阵时,当“遗产”标志未指定:

  • 如果“行”标志没有指定C列向量,除非两者都是一个B是行向量,在哪种情况下C是行向量。例如,setxor ([], [1 - 2])返回列向量。

  • 如果“行”则指定FlagC矩阵是否包含的行一个B不在十字路口。

  • 的所有值(或行)一个也在B,然后C是空的。

输入的类一个B的类。C

  • 如果一个班级一个B那么,是一样的吗C是同一类。

  • 如果你把a字符或非双数值类,然后C与非双精度输入相同的类。

  • 如果你把a逻辑,然后C

  • 如果将字符向量的单元格数组与字符,然后C是字符向量的单元格数组。

  • 如果将分类数组与字符向量、字符向量的单元格数组或字符串组合在一起,则C是一个类别数组。

  • 如果将日期时间数组与日期字符向量的单元格数组或单个日期字符向量组合在一起,则C是一个日期时间数组。

  • 如果将字符串数组与字符向量或字符向量的单元格数组组合在一起,则C是一个字符串数组。

索引一个时作为列向量返回“遗产”Flag未指定。ia中的值(或行)一个这导致了对称的差异。中出现重复的值(或行)一个,然后ia包含值(或行)第一次出现的索引。

索引B时作为列向量返回“遗产”Flag未指定。ib中的值(或行)B这导致了对称的差异。中出现重复的值(或行)B,然后ib包含值(或行)第一次出现的索引。

提示

  • 要查找表或时间表中变量子集的对称差异,可以使用列下标。例如,你可以用setxor ((:,var), B (:,var)),在那里var是正整数、正整数的向量、变量名、变量名的单元格数组或逻辑向量。或者,您也可以使用vartype创建选择指定类型的变量的下标。

扩展功能

之前介绍过的R2006a