主要内容

相交

两个数组的交集集合

描述

例子

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

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

例子

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

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

'行'选项不支持单元格阵列,除非其中一金宝app个输入是分类数组或DATETIME数组。

例子

[CIA.IB.] =相交(___也返回索引向量IA.IB.使用任何前面的语法。

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

  • 如果是'行'选项,则: C = (ia)C = B(IB,:)

  • 如果一种B.是表或时间表,然后: C = (ia)C = B(IB,:)

例子

[CIA.IB.] =相交(A、B“遗产”)[CIA.IB.] =相交(A、B、“行”、“遗产”)保留行为相交来自R2012B和先前版本的功能。

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

例子

全部收缩

创建两个有共同值的向量。

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

找出两者共同的值一种B.

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

创建两个具有共同行的表。

=表([1:5]”,直言({“一个”;“B”;“C”;' D ';“E”})、逻辑([0,1,0,1,0]))
A =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 =相交(A, B)
C =3×3表Var1 Var2 Var3 ____ ____ _____ 1 A假3 C假5 E假

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

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

找出两者共同的值一种B.,以及指标向量IA.IB.,这样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表性别年龄身高______ ___ ______泰德M 27 74弗雷德M 52 68贝蒂F 31 64鲍勃M 46 61朱迪F 35 64

创建一个表,B.与之相同的是一种

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

找出两者共有的行一种B.,以及指标向量IA.IB.,这样: C = (ia)C = B(IB,:)

[C ia ib] =相交(A, B)
C =1×3表性别年龄高度_________ ______贝蒂F 31 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];

找出两者共有的行一种B.以及指标向量IA.IB.,这样: C = (ia)C = B(IB,:)

[c,ia,ib] =相交(a,b,'行'
C =2×31 2 3 2 2 2
ia =2×13个1
ib =2×11 2

一种B.不需要具有相同数量的行,但它们必须具有相同数量的列。

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

指定'稳定的'如果你想要值C有与…相同的顺序一种

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

创建两个包含的向量

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

找出两者共同的值一种B.

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

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

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

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

创建一个字符向量的单元格数组,B.,其中一些矢量有尾随空格。

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

找出两者共有的字符向量一种B.

[C ia ib] =相交(A, B)
C =1x2细胞{'cat'} {'horse'}
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 =“双”

找出两者共同的值一种B.

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

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

班级(c)
ans = '字符'

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

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

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

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

找出两者共有的字符向量一种B.

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

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

班级(c)
ans =“细胞”

使用“遗产”国旗的行为保存相交来自R2012B和代码中的先前版本。

求交点一种B.随着当前的行为。

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

输入参数

全部收缩

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

一种B.必须具有以下异常的同一类:

  • 逻辑字符,所有数字类都可以与之结合数组。

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

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

  • DateTime阵列可以与日期字符向量或单日日期矢量的单元格阵列组合。

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

  • 如果一种B.是序列分类阵列,它们必须具有相同的类别,包括其订单。如果既不是一种也不B.是序号,它们不需要具有相同的类别集,并且使用类别名称进行比较。在这种情况下,类别C分类的并集从哪里来一种B.

  • 如果一种B.是表或时间表,它们必须具有相同的变量名称(订单除外)。对于表,忽略行名称,因此具有相同的两行具有相同值但不同的名称。对于时间表,考虑行时间,因此两行具有相同值但不同的时间,不被视为相等。

  • 如果一种B.是DateTime阵列,它们必须在彼此中一致,无论是指定时区。

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

  • 排序(要么sortrows'行'选项)

对象类方法必须彼此一致。这些对象包括来自相同根类的异构阵列。例如,一种B.可以是图形对象的句柄数组。

订单标志,指定为“排序”'稳定的',表示值(或行)的顺序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

数据类型:字符|字符串

输出参数

全部收缩

公共数据一种B.,以向量、矩阵或表的形式返回。如果输入一种B.是表还是时间表,那么变量的顺序在哪里C和变量的顺序一样吗一种

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

  • 如果是'行'未指定Flag,则C除非两者都是一种B.是什么情况下的行向量C是一排矢量。

  • 如果是'行'则指定FlagC一个矩阵是否包含与之相同的行一种B.

输入的类一种B.决定了C

  • 如果类的一种B.都是一样的吗C是同一个班级。

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

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

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

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

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

  • 如果您将字符串数组与字符向量或字符向量数组组合,那么C是一个字符串数组。

索引一种时作为列向量返回“遗产”未指定Flag。IA.中的值(或行)一种这是很常见的B.。如果有重复值(或行)一种, 然后IA.包含值(或行)第一次出现的索引。

索引B.时作为列向量返回“遗产”未指定Flag。IB.中的值(或行)B.这是很常见的一种。如果有重复值(或行)B., 然后IB.包含值(或行)第一次出现的索引。

提示

  • 要找到与表或时间表相对于变量子集的交点,可以使用列数据。例如,您可以使用交叉(a(:,var), B (:,var))),在那里var是正整数、正整数向量、变量名、变量名单元格数组或逻辑向量。或者,您可以使用vartype.创建用于选择指定类型变量的下标。

扩展功能

之前介绍过的R2006a