setxor

Класс: набор данных

(Не Рекомендуемый) Задать исключающее или для наблюдений массива набора данных

The dataset тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB® table вместо этого тип данных. См. MATLAB table документация для получения дополнительной информации.

Синтаксис

C = setxor(A,B)
C = setxor(A,B,vars)
C = setxor(A,B,vars,setOrder)
[C,iA,iB] = setxor(___)

Описание

C = setxor(A,B) для dataset массивы A и B возвращает набор наблюдений, которые не находятся на пересечении двух массивов, с удаленными повторениями. Наблюдения в массиве набора данных C сортируются.

C = setxor(A,B,vars) возвращает набор наблюдений, которые не находятся в пересечении двух массивов, принимая во внимание только переменные, указанные в vars, с удаленными повторениями. Наблюдения в массиве набора данных C сортируются по этим переменным. Значения для переменных, не заданные в vars для каждого наблюдения в C взяты из соответствующего наблюдения в A или B. Если есть несколько наблюдений в A или B которые соответствуют наблюдению в Cэти значения берутся из первого вхождения.

C = setxor(A,B,vars,setOrder) возвращает наблюдения в C в порядке, заданном setOrder.

[C,iA,iB] = setxor(___) также возвращает векторы индекса iA и iB таким образом C - сортированная комбинация значений A(iA,:) и B(iB,:). Если есть повторные наблюдения в A или B, затем setxor возвращает индекс первого вхождения. Можно использовать любой из предыдущих входных параметров.

Входные параметры

A,B

Входные массивы набора данных.

vars

Строковые массивы или массив ячеек из векторов символов, содержащих имена переменных, или вектор из целых чисел, содержащий переменные номера столбцов. vars указывает переменные в A и B что setxor рассматривает.

Задайте vars как [] использовать его значение по умолчанию для всех переменных.

setOrder

Флаг, указывающий порядок сортировки для наблюдений в C. Возможные значения setOrder являются:

'sorted'Наблюдения в C находятся в сортированном порядке (по умолчанию).
'stable'Наблюдения в C находятся в том же порядке, в котором они появляются A, затем B.

Выходные аргументы

C

Массив набора данных с наблюдениями, не находящимися на пересечении A и B, с удаленными повторениями. C находится в сортированном порядке (по умолчанию) или в порядке, заданном setOrder.

iA

Вектор индекса, указывающий наблюдения от A которые находятся в C. Векторная iA содержит индекс к первому вхождению любых повторных наблюдений в A.

iB

Вектор индекса, указывающий наблюдения от B которые находятся в C. Векторная iB содержит индекс к первому вхождению любых повторных наблюдений в B.

Примеры

расширить все

Создайте скалярный массив структур, а затем преобразуйте его в два массива набора данных.

S(1,1).Name = 'CLARK';
S(1,1).Gender = 'M';
S(1,1).SystolicBP = 124;
S(1,1).DiastolicBP = 93;

S(2,1).Name = 'BROWN';
S(2,1).Gender = 'F';
S(2,1).SystolicBP = 122;
S(2,1).DiastolicBP = 80;

S(3,1).Name = 'MARTIN';
S(3,1).Gender = 'M';
S(3,1).SystolicBP = 130;
S(3,1).DiastolicBP = 92;

A = struct2dataset(S(1:2));
B = struct2dataset(S(2:3));

Пересечение A и B - второе наблюдение с именем BROWN.

Верните симметричное различие A и B.

[C,iA,iB] = setxor(A,B);
C
C = 
    Name              Gender       SystolicBP    DiastolicBP
    {'CLARK' }        {'M'}        124           93         
    {'MARTIN'}        {'M'}        130           92         

[iA iB]
ans = 1×2

     1     2

Симметричное различие содержит первое наблюдение от A, и второе наблюдение от B.