Reverse of find groups

1 view (last 30 days)
Haneya Qureshi
Haneya Qureshi on 17 Dec 2021
Edited: Jan on 17 Dec 2021
I have used findgroups to convert 2 column data to single column unique values. Like 1,1 was converted to 1. 1,2 to 2. 2,1 to 3. 2,2 to 4 and so on. I now want to reverse this operation, i.e., given integer from 1 to 48, I would like to get back the two column values.

Answers (1)

Jan
Jan on 17 Dec 2021
Edited: Jan on 17 Dec 2021
Use the 2nd output of findgroups:
A = [1,1; 1,2; 2,2; 3,3; 3,4; 1,3; 1,2];
[G, ID1, ID2] = findgroups(A(:, 1), A(:, 2));
AG = [ID1, ID2];
Now the i.th row of AG contains the 2 column values of the i.th group of G.
AG(3, :)
ans = 1×2
1 3
I assume unique('rows') is more efficient here.

Community Treasure Hunt

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

Start Hunting!