exponenta event banner

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 имеет значение 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