初級設定操作
可以使用 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
的元素。