在matlab中将频率table转换为原始数据

Turning frequency table into raw data in matlab

我有一个 2 列矩阵:第 1 列有事件(以整数形式),第 2 列计算这些事件发生的频率。我想将其转换回原始数据,实际上是 tabulate() 的倒数。 IE。转 [0 4; 1 2; 2 2; 3 1; 4 0] 到 [0 0 0 0 1 1 2 2 3]。有任何想法吗?干杯。

如果你有

a = [0 4; 1 2; 2 2; 3 1; 4 0];

然后您可以简单地使用第二列作为重复次数,第一列作为 repelem

的值
b = repelem( a(:,1), a(:,2) ).';
% >> b = [0     0     0     0     1     1     2     2     3]

.' 设为可选,将结果从一列转置到一行。