MATLAB: How to duplicate the number of rows in a table based on frequency

MATLAB

Hi,
I have a frequency table like this where N is the number of occurences:
id = [1004, 1004, 1004, 1004]';
length = [23, 45, 56, 78]';
N = [1, 4, 2, 1]';
T = table(id, length, N)
Is it possible to multiply each row by the number of occurences to get a table like this ?
id2 = [1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004]';
length2 = [23, 45, 45, 45, 45, 56, 56, 78]';
N2 = [1, 1, 1, 1, 1, 1, 1, 1]';
T2 = table(id2, length2, N2)
Thank you,

Best Answer

T2 = T(repelem(1:height(T),T.N),:);
T2.N = ones(size(T2.N));