Spec-Zone.ru › Octave 6

27.1 Операции над множествами

Octave поддерживает несколько основных операций над множествами. Octave может вычислять объединение, пересечение и разность двух множеств. Octave также поддерживает операцию Исключающее ИЛИ над множествами.

Функции для операций над множествами работают одинаково, принимая два входных множества и возвращая третье множество. Например, предположим, что a и b содержат два множества, тогда

union (a, b)

вычисляет объединение двух множеств.

Наконец, определить, принадлежат ли элементы множеству, можно с помощью функции ismember. Поскольку множества упорядочены, эта операция очень эффективна и имеет порядок O(log2(n)), что предпочтительнее функции find, которая имеет порядок O(n).

: c = intersect (a, b)
: c = intersect (a, b, "rows")
: c = intersect (…, "sorted")
: c = intersect (…, "stable")
: c = intersect (…, "legacy")
: [c, ia, ib] = intersect (…)

Возвращает уникальные элементы, общие для a и b.

Если a и b являются строчными векторами, то возвращается строчный вектор; в противном случае возвращается столбец. Входными данными также могут быть ячейные массивы строк.

Если указан необязательный вход "rows", то возвращаются общие строки a и b. Входными данными должны быть двумерные числовые матрицы для использования этого параметра.

Необязательный аргумент "sorted"/"stable" управляет порядком, в котором уникальные значения появляются в выводе. По умолчанию "sorted", и значения в выводе упорядочены по возрастанию. В качестве альтернативы "stable" сохраняет порядок, найденный во входных данных.

При необходимости возвращаются векторы индексов столбцов ia и ib такие, что c = a(ia) и c = b(ib).

Примечание по программированию: флаг входных данных "legacy" изменяет алгоритм для совместимости с выпусками MATLAB до R2012b.

См. также: unique, union, setdiff, setxor, ismember.

: c = union (a, b)
: c = union (a, b, "rows")
: c = union (…, "sorted")
: c = union (…, "stable")
: c = union (…, "legacy")
: [c, ia, ib] = union (…)

Возвращает уникальные элементы, которые присутствуют либо в a, либо в b.

Если a и b являются строчными векторами, то возвращается строчный вектор; в противном случае возвращается столбец. Входными данными также могут быть ячейные массивы строк.

Если необязательный вход "rows" задан, то возвращаются строки, которые присутствуют либо в a, либо в b. Входными данными должны быть двумерные числовые матрицы для использования этого параметра.

Необязательный аргумент "sorted"/"stable" управляет порядком, в котором уникальные значения появляются в выводе. По умолчанию "sorted" и значения в выводе упорядочены по возрастанию. В качестве альтернативы "stable" сохраняет порядок, найденный во входных данных.

Необязательные выходы ia и ib являются векторами индексов столбцов такими, что a(ia) и b(ib) являются непересекающимися множествами, объединение которых равно c.

Примечание по программированию: флаг входных данных "legacy" изменяет алгоритм для совместимости с выпусками MATLAB до R2012b.

См. также: unique, intersect, setdiff, setxor, ismember.

: c = setdiff (a, b)
: c = setdiff (a, b, "rows")
: c = setdiff (…, "sorted")
: c = setdiff (…, "stable")
: c = setdiff (…, "legacy")
: [c, ia] = setdiff (…)

Возвращает уникальные элементы в a, которые не находятся в b.

Если a является строчным вектором, то возвращается строчный вектор; в противном случае возвращается столбец. Входными данными также могут быть ячейные массивы строк.

Если необязательный вход "rows" задан, то возвращаются строки в a, которые не находятся в b. Входными данными должны быть двумерные числовые матрицы для использования этого параметра.

Необязательный аргумент "sorted"/"stable" управляет порядком, в котором уникальные значения появляются в выводе. По умолчанию "sorted" и значения в выводе упорядочены по возрастанию. В качестве альтернативы "stable" сохраняет порядок, найденный во входных данных.

При необходимости возвращается вектор индексов ia такой, что c = a(ia).

Примечание по программированию: флаг входных данных "legacy" изменяет алгоритм для совместимости с выпусками MATLAB до R2012b.

См. также: unique, union, intersect, setxor, ismember.

: c = setxor (a, b)
: c = setxor (a, b, "rows")
: c = setxor (…, "sorted")
: c = setxor (…, "stable")
: c = setxor (…, "legacy")
: [c, ia, ib] = setxor (…)

Возвращает уникальные элементы, исключительные для множеств a или b.

Если a и b являются строчными векторами, то возвращается строчный вектор; в противном случае возвращается столбец. Входными данными также могут быть ячейные массивы строк.

Если необязательный вход "rows" задан, то возвращаются строки, исключительные для множеств a и b. Входными данными должны быть двумерные числовые матрицы для использования этого параметра.

Необязательный аргумент "sorted"/"stable" управляет порядком, в котором уникальные значения появляются в выводе. По умолчанию "sorted" и значения в выводе упорядочены по возрастанию. В качестве альтернативы "stable" сохраняет порядок, найденный во входных данных.

Необязательные выходы ia и ib являются векторами индексов столбцов такими, что a(ia) и b(ib) являются непересекающимися множествами, объединение которых равно c.

Примечание по программированию: флаг входных данных "legacy" изменяет алгоритм для совместимости с выпусками MATLAB до R2012b.

См. также: unique, union, intersect, setdiff, ismember.

: tf = ismember (a, s)
: tf = ismember (a, s, "rows")
: [tf, s_idx] = ismember (…)

Возвращает логическую матрицу tf с той же формой, что и a, которая равна true (1), если элемент в a найден в s, и false (0), если он не найден.

Если запрашивается второй выходной аргумент, то также возвращается индекс в s каждого совпадающего элемента.

a = [3, 10, 1];
s = [0:9];
[tf, s_idx] = ismember (a, s)
     ⇒ tf = [1, 0, 1]
     ⇒ s_idx = [4, 0, 2]

Входные данные a и s также могут быть ячейными массивами.

a = {"abc"};
s = {"abc", "def"};
[tf, s_idx] = ismember (a, s)
     ⇒ tf = 1
     ⇒ s_idx = 1

Если необязательный третий аргумент "rows" задан, то сравниваются строки в a со строками в s. Входными данными должны быть двумерные матрицы с одинаковым числом столбцов для использования этого параметра.

a = [1:3; 5:7; 4:6];
s = [0:2; 1:3; 2:4; 3:5; 4:6];
[tf, s_idx] = ismember (a, s, "rows")
     ⇒ tf = logical ([1; 0; 1])
     ⇒ s_idx = [2; 0; 5];

См. также: lookup, unique, union, intersect, setdiff, setxor.

: powerset (a)
: powerset (a, "rows")

Вычислить множество всех подмножеств (powerset) множества a.

Множество a должно быть числовой матрицей или ячейным массивом строк. Выход всегда будет ячейным массивом либо векторов, либо строк.

С необязательным аргументом "rows", каждая строка множества a рассматривается как один элемент множества. Входными данными должна быть двумерная числовая матрица для использования этого аргумента.

См. также: unique, union, intersect, setdiff, setxor, ismember.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v6.4.0/Set-Operations.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API