MATLAB 集合运算
MATLAB 提供了各种用于集合运算的函数,如并集、交集以及测试集合成员资格等。
下表显示了一些常用的集合运算符号−
序号 | 函数和描述 |
---|---|
1 | intersect(A,B) 两个数组的交集;返回A和B中共有的值,并按照排序顺序返回。 |
2 | intersect(A,B,’rows’) 把A的每一行和B的每一行视为单个实体,返回A和B中的共有行。返回的矩阵中的行按照排序顺序排列。 |
3 | ismember(A,B) 返回一个与A大小相同的数组,其中元素在B中存在的位置为1(true),其他位置为0(false)。 |
4 | ismember(A,B,’rows’) 把A的每一行和B的每一行视为单个实体,返回一个向量,其中A的行也是B的行的位置为1(true),其他位置为0(false)。 |
5 | issorted(A) 如果A的元素按照排序顺序排列,则返回逻辑值1(true),否则返回逻辑值0(false)。输入A可以是一个向量或者N×1或1×N的字符串的cell数组。如果A与sort(A)的输出相等,则认为A按照排序顺序排列。 |
6 | issorted(A, ‘rows’) 如果二维矩阵A的行按照排序顺序排列,则返回逻辑值1(true),否则返回逻辑值0(false)。如果A与sortrows(A)的输出相等,则认为矩阵A按照排序顺序排列。 |
7 | setdiff(A,B) 两个数组的差集;返回A中不在B中的值。返回数组中的值按照排序顺序排列。 |
8 | setdiff(A,B,’rows’) 把A的每一行和B的每一行视为单个实体,返回A中不在B中的行。返回的矩阵中的行按照排序顺序排列。’rows’选项不支持cell数组。 |
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