初级设定操作
可以使用 Matlab 执行基本集合操作。假设我们给出了两个向量或数组
A = randi([0 10],1,5);
B = randi([-1 9], 1,5);
我们想找到 A
和 B
中的所有元素。为此,我们可以使用
C = intersect(A,B);
C
将包括 A
的一部分和 B
的一部分。如果我们也想找到这些元素的位置,我们称之为
[C,pos] = intersect(A,B);
pos
是这些元素的位置,如 C == A(pos)
。
另一个基本操作是两套联合
D = union(A,B);
Herby 包含了 D
和 B
的所有元素。
请注意,A
和 B
在此被视为集合,这意味着元素是 A
或 B
的一部分的频率并不重要。澄清这个可以检查 D == union(D,C)
。
如果我们想要获得’A’但不是’B’的数据,我们可以使用以下函数
E = setdiff(A,B);
我们想再次注意,这是设置,以便以下声明保持 D == union(E,B)
。
假设我们要检查是否
x = randi([-10 10],1,1);
是 A
或 B
的元素我们可以执行命令
a = ismember(A,x);
b = ismember(B,x);
如果 a==1
那么 x
是 A
的元素而 x
则没有元素是 a==0
。B
也是如此。如果 a==1 && b==1
x
也是 C
的一个元素。如果 a == 1 || b == 1
x
是 D
的元素,如果 a == 1 || b == 0
它也是 E
的元素。