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

2 次查看(过去 30 天)
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 CenterFile Exchange 中查找有关 Structures 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by