MATLAB为集合操作提供了各种功能,如联合,交集和集合成员的测试等。
下表显示了一些常用的集合操作 -
函数 | 描述 |
---|---|
intersect(A,B) | 设置两个阵列的交集; 也就是返回A 和B 共同的值。返回的值按排序顺序排列。 |
intersect(A,B,’rows’) | 将A 的每一行和B 的每一行视为单个实体,并返回A 和B 两者共同的行。返回矩阵的行按排序顺序排列。 |
ismember(A,B) | 返回与A 相同大小的数组,其中包含1(true) ,其中A 的元素位于B 中。其他地方返回0(false) 。 |
ismember(A,B,’rows’) | 将A 的每行和B 的每一行视为单个实体,并返回一个包含1(true) 的向量,其中矩阵A 的行也是B 行。其他返回0(false) 。 |
issorted(A) | 如果A 的元素按排序顺序返回逻辑1 (真),否则返回逻辑0 (假)。输入A 可以是一个向量,也可以是N-by-1 或1-by-N 的字符串数组。 如果A 和sort(A) 的输出相等,则认为A 被排序。 |
issorted(A, ‘rows’) | 如果二维矩阵A 的行按排序顺序返回逻辑1 (真),否则返回逻辑0 (假)。 如果A 和排序(A) 的输出相等,则认为矩阵A 被排序。 |
setdiff(A,B) | 设置两个数组的差异; 返回A 中不在B 中的值。返回的数组中的值按排序顺序排列。 |
setdiff(A,B,’rows’) | 将A 的每一行和B 的每一行视为单个实体,并从不在B 中的A 返回行。返回的矩阵的行按排序顺序排列。'rows' 选项不支持单元格数组。 |
setxor | 设置两个数组的异或 |
union | 设置两个数组的并集 |
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