comparing categorical arrays in terms of content

1 次查看(过去 30 天)
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 个评论
alpedhuez
alpedhuez 2021-1-24
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 2021-1-24
@Matt Gaidica provided the suffcient information, just use ismember, it is simple. Please refer MATLAB doc.

请先登录,再进行评论。

采纳的回答

Adam Danz
Adam Danz 2021-1-24
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 个评论
Adam Danz
Adam Danz 2021-1-24
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Categorical Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by