Я предполагаю, что вы хотите рассматривать каждую [x,y]
точку как одну точку данных. Давайте определим некоторые примерные данные:
A = [[1,2];[2,5];[7,1];[1,2]];
Сначала мы даем равные точки равным идентификаторам, мы можем сделать это, используя
[~,~,ic] = unique(A, 'rows');
Затем мы вычисляем частоту и с этим вероятность каждогоидентификатор:
[frequency, ~] = histcounts(ic,max(ic));
probability = frequency/sum(frequency);
С этим мы можем сразу вычислить энтропию:
entropy = -sum(probability .* log(probability))
(Убедитесь, что вы используете правильный логарифм, разные поля обычно используют разные основания.)