MatLab: группировка ненулевых значений в зависимости от значений в другом векторе - PullRequest
2 голосов
/ 20 марта 2012

Допустим, у нас есть два следующих вектора:

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 Ответ

1 голос
/ 20 марта 2012

Это идеальный пример применения для 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...