在Matlab中按频率列出属性值

时间:2017-10-06 07:41:16

标签: arrays matlab

我有一个简单的问题。

让我举两个例子。

如果我有一个如下所示的矩阵,

200  ,   2;
100  ,   4;
300  ,   6

(第一列是值,第二列是这些值的计数)

我想对这些数据进行排列,如下所示

200,200, 100,100, 100, 100, 300,300,300,300,300,300

我怎样才能在MATLAB中做到这一点?

2 个答案:

答案 0 :(得分:1)

rahnema1所述,可以使用repelem完成此操作。按照你的例子:

input = [200 2; 100 4; 300 6];
v = input(:,1); % your data
n = input(:,2); % these are your counts

result = repelem(v,n)

result = result'; % transpose result if preferred

答案 1 :(得分:0)

如果您有以下矩阵:

A = [   200  ,   2;
        100  ,   4;
        300  ,   6;]

你可以这样做:

B = repelem(A(:,1),A(:,2))';

输出应为:

B =

   200   200   100   100   100   100   300   300   300   300   300   300