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.

Categories

Find more on Numeric Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!