首页 > 解决方案 > 在matlab中将频率表转换为原始数据

问题描述

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

标签: arraysmatlab

解决方案


如果你有

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]

使用.'as 可选将结果从列转置为行。


推荐阅读