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

17 ビュー (過去 30 日間)
Blue
Blue 2020 年 6 月 30 日
コメント済み: Blue 2020 年 7 月 1 日
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,

採用された回答

Adam Danz
Adam Danz 2020 年 6 月 30 日
T2 = T(repelem(1:height(T),T.N),:);
T2.N = ones(size(T2.N));
  1 件のコメント
Blue
Blue 2020 年 7 月 1 日
Thanks Adam, its a nice two-liner.
Cheers

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDebugging and Analysis についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by