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

3 Ansichten (letzte 30 Tage)
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:)

Akzeptierte Antwort

Stephen23
Stephen23 am 28 Mai 2022
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

Weitere Antworten (0)

Kategorien

Mehr zu Structures 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!

Translated by