how can i find same values in an array?
Mostrar comentarios más antiguos
I have an array a, where
a=[303.1093
94.5581
86.6591
108.1389
303.1093
107.4338
138.6919
106.8294
108.1389
149.3491
187.8940
125.0922
96.7580
303.1093
75.9192
96.2085
118.8788
303.1093
303.1093
303.1093]
then i wanna do
b=round(a);
In b I want to find the positions who are having same values and I want to mark those value as 1 and others 0.
please help me.
Thank you
-- Suchi
2 comentarios
Meghana Dinesh
el 5 de Feb. de 2016
Editada: Meghana Dinesh
el 5 de Feb. de 2016
How much "similar"? Or do you mean "same"?
suchismita
el 5 de Feb. de 2016
Editada: suchismita
el 5 de Feb. de 2016
Respuesta aceptada
Más respuestas (3)
Stephen23
el 5 de Feb. de 2016
This identifies all matching rounded values, unlike the accepted answer:
b = round(a(:));
c = bsxfun(@eq,b,b.');
x = any(tril(c,-1)|triu(c,1),1);
[a(:),+x(:)]
303.1093 1
94.5581 0
86.6591 0
108.1389 1
303.1093 1
107.4338 1
138.6919 0
106.8294 1
108.1389 1
149.3491 0
187.8940 0
125.0922 0
96.7580 0
303.1093 1
75.9192 0
96.2085 0
118.8788 0
303.1093 1
303.1093 1
303.1093 1
1 comentario
suchismita
el 6 de Feb. de 2016
Bhavini Sarkar
el 17 de Sept. de 2016
2 votos
To find the duplicate elements of an array, first you should sort array . After sorting all duplicate elements will aggregate in adjacent positions. Now using a for loop , traverse sorted array and compare adjacent elements. If adjacent elements are equal then you found one duplicate element of array . We can also find duplicate elements of an array in linear time using some extra space.
Azzi Abdelmalek
el 5 de Feb. de 2016
[ii,jj,kk]=unique(a,'stable')
1 comentario
suchismita
el 5 de Feb. de 2016
Categorías
Más información sobre Matrices and Arrays 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!