intersect

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

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

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

Синтаксис

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

Описание

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

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

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

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

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

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

A,B

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

vars

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

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

setOrder

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

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

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

C

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

iA

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

iB

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

Примеры

развернуть все

Загрузка демонстрационных данных.

A = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'));
B = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'),'Sheet',2);

Возвратите пересечение и индексируйте векторы.

[C,iA,iB] = intersect(A,B);
C = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1    

Существует одно наблюдение вместе между A и B.

Найдите наблюдение в исходных массивах набора данных.

A(iA,:)
ans = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1    

B(iB,:)
ans = 

    id               name           sex        age    wgt    smoke
    'TRW-072'        'WHITE'        'm'        39     202    1