相交

设置两个数组的交集

描述

C=相交(A、B返回两者共有的数据一个,没有重复。C是有序的。

  • 如果一个是表或时间表,然后相交返回两个表共有的行集。的航班时刻表,相交考虑行时间以确定相等性,并对输出时间表进行排序C按行倍。

C=相交(A、BsetOrder回报C以特定的顺序。setOrder“排序”'稳定'

C=相交(A、B___,'行')C=相交(A、B“行”,___处理每一行一个并且每行作为单个实体,并返回两者共有的行一个,没有重复。您必须指定一个也可以指定setOrder

“行”选项不支持单元阵列,除非其中的一万博1manbetx个输入可以是一个分类阵列或日期时间阵列。

[CIAIB] =相交(___也返回索引向量IAIB使用以前的任何语法。

  • 一般来说,C = (ia)C = B(IB)

  • 如果“行”然后指定选项:C = (ia)C = B(1B,:)

  • 如果一个是表或时间表,然后:C = (ia)C = B(1B,:)

[CIAIB] =相交(A、B“遗产”)[CIAIB] =相交(A、B、“行”、“遗产”)保留的行为相交从R2012b和以前的版本的功能。

“遗产”选项不支持类别数组、日期时间数组万博1manbetx、持续时间数组、表或时间表。

例子

全部收缩

创建两个具有相同值的向量。

A = [7 1 7 7 4];B = [7 0 4 4 0];

找到两者共有的值一个

C =相交(A, B)
C =1×24个7

创建共同的行中的两个表。

=表([1:5]”,直言({“一个”;“B”;“C”;' D ';“E”})、逻辑([0,1,0,1,0]))
A =5×3表答案:1 . A 2 . B 3 . C 4 . D 5 . E 5 . D
B =表([1:2:10]”,分类({“一个”;“C”;“E”;‘G’;“我”})、逻辑(0 (5、1)))
B =5×3表1 . A false 3 C false 5 E false 7 G false 9 I false

找到两者共有的行一个

C =相交(A, B)
C =3×3表答案:1 . C 2 . C 3 . C 5 . E 5 . C

创建两个具有相同值的向量。

A = [7 1 7 7 4];B = [7 0 4 4 0];

找到两者共有的值一个,以及索引向量IAIB,这样C = (ia)C = B(IB)

[C ia ib] =相交(A, B)
C =1×24个7
ia =2×15个1
ib =2×13个1

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

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

创建一个表,,有共同的争吵一个

B =表(分类({“F”;“米”;“F”;“F”}),...[31;47;35;23],[64;68;62;58],...“VariableNames”,{“性别”“年龄”“高度”},...“RowNames”,{梅格的“乔”“贝丝”“艾米”})
B =4×3表性别年龄身高______ ___ ______梅格˚F31 64乔中号47 68贝丝接口35 62艾米˚F23 58

找到两者共有的行一个,以及索引向量IAIB,这样:C = (ia)C = B(1B,:)

[C ia ib] =相交(A, B)
C =1×3表性别年龄身高______ ___ ______贝蒂˚F31 64
ia = 3
IB = 1

具有相同值但名称不同的两行被认为是相等的。因此,我们发现贝蒂,(3:)梅格,:B (1)具有相同的性别,年龄和身高。

创建两个矩阵与普通行。

A = [2 2 2;0 0 1;1 2 3;1 1 1];B = [1 2 3;2 2 2;2 2 0];

找到两者共有的行一个以及索引向量IAIB,这样:C = (ia)C = B(1B,:)

[C,IA,IB] =相交(A,B,“行”
C =2×31 2 3 2 2 2
ia =2×13个1
ib =2×11 2

一个不需要有相同的行数,但它们必须具有相同的列数。

使用setOrder参数指定的值的顺序C

指定'稳定'如果你想在值C与in的顺序相同一个

A = [7 1 7 7 4];B = [7 0 4 4 0];[C,IA,IB] =相交(A,B,'稳定'
C =1×27 4
ia =2×11 5
ib =2×11 3

或者,你可以指定“排序”秩序。

[C,IA,IB] =相交(A,B,“排序”
C =1×24个7
ia =2×15个1
ib =2×13个1

创建一个包含两个向量为NaN

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

找到两者共有的值一个

C =相交(A, B)
C = 5

相交对待为NaN价值观是截然不同的。

创建一个字符向量的单元数组,一个

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

创建一个字符向量的单元数组,其中一些矢量的已尾部的空白。

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

找出两者共有的字符向量一个

[C ia ib] =相交(A, B)
C =1x2的细胞{ '猫'} { '马'}
ia =2×12 4
ib =2×12 4

相交将字符向量的单元数组中的尾随空格视为不同的字符。

创建一个列向量字符数组。

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

创建含有数字类型的元素的2×3矩阵

B = [65 66 67 68 69 70],类(B)
B =2×365 66 67 68 69 70
ans =“双”

找到两者共有的值一个

[C ia ib] =相交(A, B)
C =3 x1 char数组“A”“B”“C”
ia =3×11 2 3
ib =3×11 3 5

相交解释作为字符数组并返回字符数组,C

类(C)
ans = '字符'

创建一个包含三个字母的动物名称的字符向量。

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

创建包含不同长度的动物名称的字符向量的单元数组。

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

找出两者共有的字符向量一个

C =相交(A, B)
C =2 x1细胞{'猫狗'}

结果,C,是字符向量的单元数组。

类(C)
ans =“细胞”

使用“遗产”标记来保存的行为相交从R2012b并在代码中以前的版本。

求出一个与当前的行为。

A = [7 1 7 7 4];B = [7 0 4 4 0];[C1, ia1 ib1] =相交(A, B)
C1 =1×24个7
ia1 =2×15个1
ib1 =2×13个1

找到独特的元素一个并保留遗留行为。

[C2, ia2 ib2] =相交(A, B,“遗产”
C2 =1×24个7
ia2 =1×25个4
ib2 =1×24个1

输入参数

全部收缩

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

一个必须符合下列情况除外同一类:

  • 合乎逻辑字符和所有的数字类可以用结合数组。

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

  • 分类阵列可以与字符数组,字符向量的单元阵列,或串阵列组合。

  • 日期时间的阵列可以与日期字符载体或单个日期字符向量的单元阵列相结合。

有额外的要求一个基于数据类型:

  • 如果一个都是有序分类阵列,它们必须具有相同的套类,包括它们的顺序。如果没有一个也不是序号,它们不需要具有相同的类别集,并且使用类别名称执行比较。在本例中,是C类别的已排序并集是从哪里来的一个

  • 如果一个是表或时间表,它们必须具有相同的变量名称(除顺序)。对于表,列名会被忽略,从而使具有相同的值,但不同的名称有两行,被认为是相等的。对于时间表,行时间考虑在内,从而使具有相同的值,但不同的时代有两行,是不相等。

  • 如果一个有日期时间排列,它们必须与他们是否指定时区相互一致。

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

  • 排序(要么sortrows“行”选项)

对象类的方法必须是相互一致。这些对象包括从相同的根类派生异构阵列。例如,一个可以是图形对象的句柄数组。

Order标记,指定为“排序”'稳定'中,指示值(或行)的顺序C

国旗 描述
“排序”

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

C = intersect([7 0 1 5],[0 2 7 5],“排序”
C = 0 5 7

'稳定'

其中的值(或行)C返回相同的顺序按它们出现在一个

C = intersect([7 0 1 5],[0 2 7 5],'稳定'
C = 7 0 5

数据类型:字符|字符串

输出参数

全部收缩

公共数据一个,以向量、矩阵或表的形式返回。如果输入一个表或时间表,然后变量的顺序C是否与变量的顺序相同一个

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

  • 如果“行”那么,没有指定标记C是一个列向量,除非两个一个是行向量,在这种情况下C是一个行向量。

  • 如果“行”然后指定标记C一个矩阵是否包含共同的行一个

类的输入一个确定C

  • 如果类的一个是一样的吗C是同一个类。

  • 如果你把字符或nondouble数字类, 然后C是与非双输入相同的类。

  • 如果你把合乎逻辑, 然后C

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

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

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

  • 如果合并一个字符串数组与字符向量或特征向量的单元阵列,然后C是一个字符串数组。

索引一个时,作为列向量返回“遗产”没有指定标记。IA标识其中的值(或行)一个是很常见的。如果有重复的值(或行)中一个, 然后IA包含值(或行)第一次出现的索引。

索引时,作为列向量返回“遗产”没有指定标记。IB标识其中的值(或行)是很常见的一个。如果有重复的值(或行)中, 然后IB包含值(或行)第一次出现的索引。

提示

  • 为了找到关于该路口的变量表或时间表的一个子集,你也可以使用列下标。例如,你可以使用交叉(A(:,var),B (:,var)),在那里var是正整数、正整数向量、变量名、变量名单元数组或逻辑向量。或者,您可以使用VARTYPE创建选择指定类型变量的下标。

扩展功能

之前介绍过的R2006a