В дополнение к функциям HIST / HISTC вы можете использовать ACCUMARRAY для подсчета вхождений (а также ряда других операций агрегирования)
counts = accumarray(list(:), 1)
%# same as: accumarray(list(:), ones(size(list(:))), [], @sum)
Другой способ - использовать TABULATE из панели инструментов статистики.(возвращает значение, число, частоту):
t = tabulate(list)
t =
1 3 27.273
2 5 45.455
3 2 18.182
4 0 0
5 1 9.0909
Обратите внимание, что в случаях, когда значения не начинаются с 1 м, или если есть большие промежутки между минимальным и максимальным, вы получитемного нулей между счетами.Вместо этого используйте:
list = [3 11 12 12 13 11 13 12 12 12 11 15];
v = unique(list);
table = [v ; histc(list,v)]'
table =
3 1
11 3
12 5
13 2
15 1
, представляющий уникальные значения и их количество (это будет перечислять только значения с как минимум одним вхождением)