comparing categorical arrays in terms of content

4 vues (au cours des 30 derniers jours)
alpedhuez
alpedhuez le 24 Jan 2021
Commenté : alpedhuez le 24 Jan 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 commentaires
alpedhuez
alpedhuez le 24 Jan 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 le 24 Jan 2021
@Matt Gaidica provided the suffcient information, just use ismember, it is simple. Please refer MATLAB doc.

Connectez-vous pour commenter.

Réponse acceptée

Adam Danz
Adam Danz le 24 Jan 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 commentaires
Adam Danz
Adam Danz le 24 Jan 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 le 24 Jan 2021
Thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Identification dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by