Иллюстрированный самоучитель по Matlab



Функции обработки множеств - часть 2


setdiff(a.b) — возвращает разность множеств, т. е., те элементы вектора а, которые не содержатся в векторе b. Результирующий вектор сортируется по возрастанию;

setdiff(a,b, 'rows') — возвращает те строки из матрицы а, которые не содержатся в матрице Ь. Матрицы а и b должны иметь одинаковое число столбцов; 

 [c,i] = setdiff(...) — возвращает также вектор индексов 1, такой что с = а(i)

или с = а (i,;).

Если входной массив а является матрицей, то он расценивается как вектор-столбец а(:).

Пример:

» а=[2 3 5 7 8 9 10 13 20]; 

» b=[1456894] 

» с = setdiff(a.b) 

с=

2 3 7 10 13 20

 setxor(a.b) — исключающее ИЛИ для векторов а и b. Результирующий вектор отсортирован;

setxor(a,b, 'rows') — возвращает строки, которые не являются пересечениями матриц а и b. Матрицы а и b должны иметь одинаковое число столбцов;

[c.ia.ib] = setxor(...) — возвращает также векторы индексов ia и ib так, что с является отсортированной комбинацией элементов с = а(iа)ис = b(ib) или для комбинаций строк с = а(iа,:)ис = b(ib.;).

Если массив а является матрицей, то он расценивается как вектор-столбец а(:).

Пример:

» а = [-1 0 1 Inf -Inf NaN]; 

» b = [-2 pi 0 Inf]; 

» с = setxor(a.b)

с =

 -Inf -2.0000-1.00001.0000 3.1416 NaN

union(a ,b) — возвращает вектор объединенных значений из а и b без повторяющихся элементов. Результирующий вектор сортируется в порядке возрастания;

union(a,b, 'rows') — возвращает объединенные строки из а и b, не содержащие повторений (а и b — это матрицы с одинаковым числом столбцов);

[c.ia.ib] = unionL.) — дополнительно возвращает i а и i b — векторы индексов, такие что с = a(ia) и c=b(1b), или, для объединенных строк, с = а(1а.:)ис = b(ib,:). Невекторный массив а расценивается как вектор-столбец а(:). Пример:

» а=[2,4,-4,9,0]:b=[2,5,4]: 

» [c,ia,ib]=union(a,b) 

с =

-4    0    2    4    5    9 




Содержание  Назад  Вперед