how to find indices of duplicates in array and save results on a structure

1 回表示 (過去 30 日間)
aposta95
aposta95 2022 年 5 月 28 日
回答済み: Stephen23 2022 年 5 月 28 日
Hi, I want to know how to find indices of duplicaes in a given array and save results on a structure.
For example, array A is given as below:
A=[1;5;2;5;3;3;4;1;2;1];
so there are duplicates of values: 1,2,3,5 , and I want to find the indices of duplicates directly without using 'find'
I manually wrote down on structure as below, but how can I write the code to save the indices of duplicates on a structure?
So those are my two questions.. 1) how to find indices of duplicates in array , and 2) how to save results on a structure
Many thanks:)

採用された回答

Stephen23
Stephen23 2022 年 5 月 28 日
A = [1;5;2;5;3;3;4;1;2;1];
[U,~,X] = unique(A);
V = 1:numel(A);
C = accumarray(X,V(:),[],@(v){v});
S = struct('value',num2cell(U),'indices',C)
S = 5×1 struct array with fields:
value indices
Checking:
S.value
ans = 1
ans = 2
ans = 3
ans = 4
ans = 5
S.indices
ans = 3×1
1 8 10
ans = 2×1
3 9
ans = 2×1
5 6
ans = 7
ans = 2×1
2 4

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStructures についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by