MatLab:根据另一个向量中的值对非零值进行分组

时间:2012-03-20 13:07:06

标签: matlab vector grouping

让我们说,我们有以下两个向量:

data =   [1 2 2 2 3 3 3 3 3 3 4 4 4 4 4 ];
x_axis = [1 1 1 2 2 2 3 3 3 3 3 4 4 5 5 ];

我现在想要的是计算所有数据值,例如x_axis中的一个,然后这些值是两个等等。所以结果看起来如下(我可以表示为直方图) :

  result=[5 8 16 8 8];
  x_axis=[1 2  3 4 5];

1 个答案:

答案 0 :(得分:1)

这是accumarray的完美应用示例:

data =   [1 2 2 2 3 3 3 3 3 3 4 4 4 4 4 ];
x_axis = [1 1 1 2 2 2 3 3 3 3 3 4 4 5 5 ];

result = accumarray(x_axis(:),data(:),[],@sum)
result =
 5
 8
16
 8
 8