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
廣告
© . All rights reserved.