文档

相交

设置两个数组的交集

语法

C =相交(A,B)
C =相交(A,B,'rows')
[C,ia,ib] =交集(A,B)
[C,ia,ib] = cross (A,B,'rows')
[C,ia,ib] =___setOrder)
[C,ia,ib] = intersect(A,B,'legacy')
[C,ia,ib] = intersect(A,B,'rows','legacy')

描述

例子

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

  • 如果一个而且B那么是表格还是时间表呢相交返回两个表共用的行集。的航班时刻表,相交考虑行时间以确定相等性,并对输出时间表进行排序C乘以行数。

C=相交(A、B, '行')处理每一行一个每一行B作为单个实体,并返回两者共有的行一个而且B,没有重复。C是有序的。

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

例子

Ciaib=相交(A、B也返回索引向量ia而且ib

  • 一般来说,C = A(ia)而且C = B(ib)

  • 如果一个而且B那么是表格还是时间表呢C = A(ia,:)而且C = B(ib,:)

例子

Ciaib=相交(A、B, '行')也返回索引向量ia而且ib,以致于C = A(ia,:)而且C = B(ib,:)

例子

Ciaib=相交(___setOrder返回C使用前面语法中的任何输入参数以特定顺序。setOrder可以“排序”“稳定”

  • “排序”- - - - - -C是有序的。这是默认设置。

  • “稳定”- - - - - -C和?的顺序是一样的一个

例子

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

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

例子

全部折叠

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

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

找出两者共有的值一个而且B

C =相交(A,B)
C =4 7

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

A = table([1:5]',categorical({“一个”“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 = table([1:2:10]',categorical({“一个”“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 = A(ia)而且C = B(ib)

[C,ia,ib] =交集(A,B)
C =4 7
ia =5个1
ib =3个1

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

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

创建一个表格,B,有共同的排一个

B = table(category ({)“F”“米”“F”“F”}),...[31; 47; 35; 23], [64; 68; 62; 58],...“VariableNames”, {“性别”“年龄”“高度”},...“RowNames”, {梅格的“乔”“贝丝”“艾米”})
B =4×3表性别年龄身高______ ___ ______梅格F 31 64乔M 47 68贝丝F 35 62艾米F 23 58

找出两者共有的行一个而且B,以及索引向量ia而且ib,以致于C = A(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 = A(ia,:)而且C = B(ib,:)

[C,ia,ib] =交集(A,B, B,)“行”
C =1 2 3 2 2 2 2
ia =3个1
ib =1 2

一个而且B行数不需要相同,但列数必须相同。

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

指定“稳定”如果你想要输入值C与…有相同的顺序一个

A = [7 1 7 7 4];B = [7 0 4 4 0];[C,ia,ib] =交集(A,B, B,)“稳定”
C =7 4
ia =1 - 5
ib =1 3

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

[C,ia,ib] =交集(A,B, B,)“排序”
C =4 7
ia =5个1
ib =3个1

创建两个包含

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

找出两者共有的值一个而且B

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

相交对待不同的价值。

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

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

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

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

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

[C,ia,ib] =交集(A,B)
C =1×2单元格数组“猫”“马”
ia =2 4
ib =2 4

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

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

A = [“一个”“B”“C”),类(一)
一个=3×1 char数组“a b c”
Ans = 'char'

创建一个包含数值类型元素的2 × 3矩阵

B = [65 66 67;68 69 70], class(B)
B =65 66 67 68 69 70
Ans = 'double'

找出两者共有的值一个而且B

[C,ia,ib] =交集(A,B)
C =3×1 char数组“a b c”
ia =1 2 3
ib =1 3 5

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

类(C)
Ans = 'char'

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

A = [“狗”“猫”“狐狸”“猪”];类(一)
Ans = 'char'

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

B = {“猫”“狗”“鱼”“马”};类(B)
Ans = 'cell'

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

C =相交(A,B)
C =2×1单元格数组“猫”“狗”

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

类(C)
Ans = 'cell'

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

找到的交叉点一个而且B与当前的行为。

A = [7 1 7 7 4];B = [7 0 4 4 0];[C1,ia1,ib1] = intersect(A,B)
C1 =4 7
ia1 =5个1
ib1 =3个1

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

[C2,ia2,ib2] = intersect(A,B, c, c)“遗产”
C2 =4 7
ia2 =5个4
ib2 =4个1

输入参数

全部折叠

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

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

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

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

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

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

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

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

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

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

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

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

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

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

订单的旗帜 意义
“排序” 中的值(或行)C按排序顺序返回。例如:C = intersect([7 0 5],[7 1 5],'sorted')返回C = [5 7]
“稳定” 中的值(或行)C以它们出现的相同顺序返回一个而且B.例如:C = intersect([7 0 5],[7 1 5],'stable')返回C = [7 5]

输出参数

全部折叠

共用的数据一个而且B,作为向量、矩阵或表返回。如果输入一个而且B表或时间表,那么变量的顺序C和变量的顺序一样吗一个

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

  • 如果“行”标志没有指定C列向量,除非两者都是一个而且B是行向量,在哪种情况下C是行向量。

  • 如果“行”则指定FlagC矩阵是否包含共有的行一个而且B

输入的类一个而且B的类。C

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

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

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

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

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

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

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

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

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

提示

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

扩展功能

R2006a之前介绍过

这个话题有帮助吗?