intersect(A,B) returns the data with no repetitions
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
want2know
el 16 de Oct. de 2013
Comentada: want2know
el 21 de Oct. de 2013
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.
0 comentarios
Respuesta aceptada
Jos (10584)
el 16 de Oct. de 2013
I think you are looking for the second output of SORT
A = [ 4 1 1 2 3]
[B, ix] = sort(A, 'ascend')
Now, B equals A(ix)
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
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!