Info
この質問は閉じられています。 編集または回答するには再度開いてください。
finding an item in an array
1 回表示 (過去 30 日間)
古いコメントを表示
Hello,
I have an array of five items for example 1 2 2 2 4
How can I find the positions of the repeated items, i.e 2 2 2?
Thanks
0 件のコメント
回答 (7 件)
Aldin
2012 年 3 月 20 日
Here is my solution:
a = [ 1 2 2 2 4 ];
find(a==2)
ans =
2 3 4
2 件のコメント
Daniel Shub
2012 年 3 月 20 日
+1 for simplicity. While this requires knowing what number is repeated and will fail if multiple numbers are repeated, it does answer the question.
Aldin
2012 年 3 月 20 日
HERE IS THE COMBINATION OF Daniels AND my CODE:
x = [1 2 2 2 4 5 5 3 3 2];
a = unique(x);
[~,b] = unique(x, 'first');
[~,c] = unique(x, 'last');
ismember(x, a(b~=c))
the result will be: 0 1 1 1 0 1 1 1 1 1
(my code) if you want to get index:
find(ans==1)
result:
ans =
2 3 4 6 7 8 9 10
MURTADHA ALDEER
2012 年 3 月 20 日
3 件のコメント
Oleg Komarov
2012 年 3 月 25 日
Diret link to download: http://www.mathworks.com/matlabcentral/fileexchange/28113-findseq?controller=file_infos&download=true
FEX page for findseq: http://www.mathworks.com/matlabcentral/fileexchange/28113-findseq
Daniel Shub
2012 年 3 月 20 日
One of my uglier solutions ...
x = [1 2 2 2 4];
a = unique(x);
[~,b] = unique(x, 'first');
[~,c] = unique(x, 'last');
ismember(x, a(b~=c))
0 件のコメント
Aldin
2012 年 3 月 21 日
HERE IS THE COMBINATION OF Daniels AND my CODE:
x = [1 2 2 2 4 5 5 3 3 2];
a = unique(x);
[~,b] = unique(x, 'first');
[~,c] = unique(x, 'last');
ismember(x, a(b~=c))
the result will be: 0 1 1 1 0 1 1 1 1 1
(my code) if you want to get index:
find(ans==1)
result: ans = 2 3 4 6 7 8 9 10
0 件のコメント
MURTADHA ALDEER
2012 年 3 月 22 日
1 件のコメント
Daniel Shub
2012 年 3 月 25 日
If your question is now answered, then accept your answer and upvote anyone that helped.
この質問は閉じられています。
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!