ismember

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

Элементы массива набора данных, которые являются членами набора

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

Синтаксис

LiA = ismember(A,B)
LiA = ismember(A,B,vars)
[LiA,LocB] = ismember(___)

Описание

LiA = ismember(A,B) для массивов dataset A и B возвращают вектор логических значений та же длина как A. Выходной вектор, LiA, имеет значение 1, (TRUE) в элементах, которые соответствуют наблюдениям в A, которые также присутствуют в B и 0, (FALSE) в противном случае.

LiA = ismember(A,B,vars) возвращает вектор логических значений та же длина как A. Выходной вектор, LiA, имеет значение 1, (TRUE) в элементах, которые соответствуют наблюдениям в A, которые также присутствуют в B для переменных, заданных в vars только и 0, (FALSE) в противном случае.

[LiA,LocB] = ismember(___) также возвращает вектор та же длина как A, содержащий индекс к первому наблюдению в B, который соответствует каждому наблюдению в A или 0, если нет такого наблюдения. Можно использовать любой из предыдущих входных параметров.

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

A

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

B

Установите массив набора данных. Когда наблюдение в A найдено в B для всех переменных или только тех переменных, заданных в vars, соответствующим элементом LiA является 1.

vars

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

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

LiA

Вектор логических значений та же длина как A. LiA имеет значение 1, (TRUE), когда соответствующее наблюдение в A присутствует в B. В противном случае LiA имеет значение (FALSE) 0.

Если вы задаете vars, LiA имеет значение 1, когда соответствующее наблюдение в A присутствует в B для переменных в vars только.

LocB

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

Примеры

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

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

load('hospital')
B = hospital(1:50,1:5);

Этот массив набора данных набора, B, имеет 50 наблюдений относительно 5 переменных.

Задайте массив набора данных запроса.

rng('default')
rIx = randsample(100,10);
A = hospital(rIx,1:5)
A = 
               LastName           Sex       Age    Weight    Smoker
    YLN-495    'COLEMAN'          Male      39     188       false 
    LQW-768    'TAYLOR'           Female    31     132       false 
    DGC-290    'BUTLER'           Male      38     184       true  
    DAU-529    'REED'             Male      50     186       true  
    REV-997    'ALEXANDER'        Male      25     171       true  
    QEQ-082    'COX'              Female    28     111       false 
    AGR-528    'SIMMONS'          Male      45     181       false 
    PUE-347    'YOUNG'            Female    25     114       false 
    HVR-372    'RUSSELL'          Male      44     188       true  
    XUE-826    'JACKSON'          Male      25     174       false 

Проверяйте, какие наблюдения в A присутствуют в B.

LiA = ismember(A,B)
LiA = 10x1 logical array

   0
   1
   0
   0
   0
   0
   0
   1
   0
   1

Отобразите наблюдения в A, которые присутствуют в B.

A(LiA,:)
ans = 
               LastName         Sex       Age    Weight    Smoker
    LQW-768    'TAYLOR'         Female    31     132       false 
    PUE-347    'YOUNG'          Female    25     114       false 
    XUE-826    'JACKSON'        Male      25     174       false 

Найдите местоположение наблюдений в B.

[~,LocB] = ismember(A,B)
LocB = 10×1

     0
    10
     0
     0
     0
     0
     0
    28
     0
    13

Отобразите наблюдения в B что наблюдения соответствия в A.

B(LocB(LocB>0),:)
ans = 
               LastName         Sex       Age    Weight    Smoker
    LQW-768    'TAYLOR'         Female    31     132       false 
    PUE-347    'YOUNG'          Female    25     114       false 
    XUE-826    'JACKSON'        Male      25     174       false