2012-03-20 24 views
2

可以说,这取决于值的非零值,我们下面的两个向量:MatLab的:分组在另一个载体

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,则这些值这是两个等,所以该结果应该为以下(其中i,那么可以表示为直方图):

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

回答

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 
+0

非常感谢! – 2012-03-20 13:19:56

相关问题