intersect(A,B) returns the data with no repetitions
Mostrar comentarios más antiguos
Dear Sir/Madam,
I was using "intersect" in my Matlab code where I want the following:
A = [ 4 1 1 2 3];
[B] = sort(A, 'ascend'); % so that B is sorting A in ascending order, so I got B = [1 1 2 3 4]
[same,a] = intersect(B,A);
I want same = [1 1 2 3 4] but the simulation gives me same = [1 2 3 4] by omitting the repeated '1'.
I understand by using intersect it will return data with no repetition
C = intersect(A,B) returns the data common to both A and B with no repetitions.
I want it to show the complete data including those repetition, what are the alternatives I can use rather than the function "intersect"?
For example:
A = [ 4 1 1 2 3];
[B] = sort(A, 'ascend'); % so that B is sorting A in ascending order, so I got B = [1 1 2 3 4]
[same,a] = intersect(B,A);
So now I want it to be like this same =[1 1 2 3 4] and a=[2 3 4 5 1].
I need to access ‘a’ where ‘a’ shows the original index prior to sorting so I can use it for further processing.
Thank you very much.
Respuesta aceptada
Más respuestas (2)
Laurent
el 16 de Oct. de 2013
You can use the function 'ismember' for this purpose.
From the help:
LIA = ismember(A,B) for arrays A and B returns an array of the same
size as A containing true where the elements of A are in B and false
otherwise.
1 comentario
Jos (10584)
el 16 de Oct. de 2013
0 votos
I do not get it. Will same not always be exactly B?
1 comentario
want2know
el 16 de Oct. de 2013
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!