comparing categorical arrays in terms of content

4 visualizaciones (últimos 30 días)
alpedhuez
alpedhuez el 24 de En. de 2021
Comentada: alpedhuez el 24 de En. de 2021
I have two categorical arrays A and B. I want to idenitfy
  • common elements of A and B
  • elements that are in one of them but not in both of them
  3 comentarios
alpedhuez
alpedhuez el 24 de En. de 2021
Does setdiff work in this context? https://www.mathworks.com/matlabcentral/answers/39735-find-elements-in-one-array-not-in-another
KALYAN ACHARJYA
KALYAN ACHARJYA el 24 de En. de 2021
@Matt Gaidica provided the suffcient information, just use ismember, it is simple. Please refer MATLAB doc.

Iniciar sesión para comentar.

Respuesta aceptada

Adam Danz
Adam Danz el 24 de En. de 2021
ismember alone can answer the first point (common elements of A and B) but not the 2nd since it only tests whether elements of A are in B but not whether elements of B are in A. For example,
A = categorical({'a' 'b' 'c' 'e'}');
B = categorical({'a' 'b' 'c' 'd'}');
[LIA,LOCB] = ismember(A,B)
LIA = 4x1 logical array
1 1 1 0
LOCB = 4×1
1 2 3 0
setxor can show their differences.
[C,~,~] = setxor(A,B)
C = 2×1 categorical array
e d
  3 comentarios
Adam Danz
Adam Danz el 24 de En. de 2021
Check out the first sentence of the documentation for each function. If that's not clear I'd be happy to explain.
You could also experiment to see what the differences are .
A = categorical({'a' 'b' 'c' 'e'}');
B = categorical({'a' 'b' 'c' 'd'}');
setdiff(A,B)
ans = categorical
e
setdiff(B,A)
ans = categorical
d
setxor(A,B)
ans = 2×1 categorical array
e d
setxor(B,A)
ans = 2×1 categorical array
d e
alpedhuez
alpedhuez el 24 de En. de 2021
Thank you.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by