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

28 vues (au cours des 30 derniers jours)
Blue
Blue le 30 Juin 2020
Commenté : Blue le 1 Juil 2020
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,

Réponse acceptée

Adam Danz
Adam Danz le 30 Juin 2020
T2 = T(repelem(1:height(T),T.N),:);
T2.N = ones(size(T2.N));

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by