How to find the indices of element occuring once in a vector?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello all
I want to know...How can I get the indices of a value that is occuring only once in a vector...please guide.
Example: A=[1 1 0 -1 0 0 1 0 1 1]
Task: To identify the indices of -1 (as it is occuring only once) in A.
Please Help!!!
Regards
0 Kommentare
Akzeptierte Antwort
Cedric
am 23 Mai 2014
Bearbeitet: Cedric
am 23 Mai 2014
There are ways to solve your problem based on HISTC or ACCUMARRAY. However, the simplest approach if you really have only two situations (unique 1 or unique -1) is probably the following:
if sum( A == 1 ) == 1
pos = find( A == 1 ) ;
else
pos = find( A == -1 ) ;
end
value = A(pos) ;
Weitere Antworten (3)
George Papazafeiropoulos
am 23 Mai 2014
Bearbeitet: George Papazafeiropoulos
am 23 Mai 2014
A=[1 1 0 -1 0 0 1 0 1 1];
[~,c]=histc(A,unique(A));
out=A(c==1);
2 Kommentare
Cedric
am 23 Mai 2014
Sagar, you should take the time to understand his example. In particular, see what c is, what c==1 is, etc. Maybe read about logical indexing, and if you cannot use the latter and really need the position of unique element(s), read about FIND.
George Papazafeiropoulos
am 23 Mai 2014
Bearbeitet: George Papazafeiropoulos
am 23 Mai 2014
A=[1 1 -1 0 0 0 1 0 1 1];
[~,c]=histc(A,unique(A));
out=find(c==1);
3 Kommentare
George Papazafeiropoulos
am 23 Mai 2014
Try the above code for different A. Define A as you want and then execute the two last lines of the code. I think it works...
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!