MATLAB - 集合运算



MATLAB 提供了各种集合运算函数,例如并集、交集和集合成员测试等。

下表显示了一些常用的集合运算:

序号 函数及说明
1

intersect(A,B)

两个数组的集合交集;返回 A 和 B 共同拥有的值。返回的值按排序顺序排列。

2

intersect(A,B,'rows')

将 A 和 B 的每一行都视为单个实体,并返回 A 和 B 共同拥有的行。返回矩阵的行按排序顺序排列。

3

ismember(A,B)

返回一个与 A 大小相同的数组,其中包含 1(真),表示 A 的元素在 B 中找到。在其他地方,它返回 0(假)。

4

ismember(A,B,'rows')

将 A 和 B 的每一行都视为单个实体,并返回一个向量,其中包含 1(真),表示矩阵 A 的行也是 B 的行。在其他地方,它返回 0(假)。

5

issorted(A)

如果 A 的元素按排序顺序排列,则返回逻辑 1(真),否则返回逻辑 0(假)。输入 A 可以是向量或 N×1 或 1×N 字符串元胞数组。如果 A 和 sort(A) 的输出相等,则认为 A 已排序。

6

issorted(A, 'rows')

如果二维矩阵 A 的行按排序顺序排列,则返回逻辑 1(真),否则返回逻辑 0(假)。如果 A 和 sortrows(A) 的输出相等,则认为矩阵 A 已排序。

7

setdiff(A,B)

两个数组的集合差;返回 A 中不在 B 中的值。返回数组中的值按排序顺序排列。

8

setdiff(A,B,'rows')

将 A 和 B 的每一行都视为单个实体,并返回 A 中不在 B 中的行。返回矩阵的行按排序顺序排列。

'rows' 选项不支持元胞数组。

9

setxor

两个数组的集合异或

10

union

两个数组的集合并集

11

unique

数组中的唯一值

示例

创建一个脚本文件并键入以下代码:

a = [7 23 14 15 9 12 8 24 35]
b = [ 2 5 7 8 14 16 25 35 27]
u = union(a, b)
i = intersect(a, b)
s = setdiff(a, b)

运行该文件后,将产生以下结果:

a =

    7   23   14   15    9   12    8   24   35

b =

    2    5    7    8   14   16   25   35   27

u =

    2    5    7    8    9   12   14   15   16   23   24   25   27   35

i =

    7    8   14   35

s =

    9   12   15   23   24
matlab_operators.htm
广告