~ismember does not work on my matrix

1 vue (au cours des 30 derniers jours)
RDG
RDG le 11 Sep 2013
A=[1 1 5 6;
2 2 1 5;
3 1 4 2;
4 4 2 1;
5 6 2 1;]
B=[1 1 1; %remain
1 4 2;
1 5 6;
2 1 5;
4 2 1;
4 2 2; %remain
6 2 1;
6 3 1;] %remain
I would like the output, C to display
C=[1 1 1;
4 2 2;
6 3 1;]
I tried the following:
[idx1,idx2] = ismember(A(:,2:4),B,'rows');
However, when I used ~
[idx1,idx2] = ~ismember(A(:,2:4),B,'rows');
An error's returned.
May I know why is this so and any suggestions on how to get around this?

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 11 Sep 2013
Try
C = setdiff(B,A(:,2:end),'rows')
or
C = B(~ismember(B,A(:,2:end),'rows'),:)
  1 commentaire
RDG
RDG le 11 Sep 2013
Both works! Thanks. Will understand it for myself.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by