How to find the indices of element occuring once in a vector?
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Cedric
2014 年 5 月 23 日
編集済み: Cedric
2014 年 5 月 23 日
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) ;
その他の回答 (3 件)
George Papazafeiropoulos
2014 年 5 月 23 日
編集済み: George Papazafeiropoulos
2014 年 5 月 23 日
A=[1 1 0 -1 0 0 1 0 1 1];
[~,c]=histc(A,unique(A));
out=A(c==1);
2 件のコメント
Cedric
2014 年 5 月 23 日
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
2014 年 5 月 23 日
編集済み: George Papazafeiropoulos
2014 年 5 月 23 日
A=[1 1 -1 0 0 0 1 0 1 1];
[~,c]=histc(A,unique(A));
out=find(c==1);
3 件のコメント
George Papazafeiropoulos
2014 年 5 月 23 日
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...
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!