在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]
将 .'
设为可选,将结果从一列转置到一行。
我有一个 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]
将 .'
设为可选,将结果从一列转置到一行。