Существует ли общая функция подсчета уникальности? - PullRequest
1 голос
/ 01 марта 2012

В общем, я имею в виду, что он может подсчитывать различные элементы входных данных при условии, что это либо список чисел (или других атомов), либо список векторов, либо список матриц.

Пример: данныйсписок векторов строк длины 3:

x = [1 1 1; 1 0 1; 0 1 1; 1 0 1; 1 1 1; 1 0 1];

ожидаемый результат должен быть:

[1 1 1] --> 2
[1 0 1] --> 3
[0 1 1] --> 1

, возвращенный, например, в двух списках.Я знаю о функции count_uniques, но, насколько я знаю, она имеет дело только с входами без массивов.

1 Ответ

2 голосов
/ 01 марта 2012

Вы можете использовать unique. Если вход является массивом, используйте unique(X,'rows').

Если вы хотите универсальную функцию, вы можете сделать:

function varargout=universal_unique(X);
   if(size(X,2)==1)
      [varargout{:}]=unique(X);
    else
      [varargout{:}]=unique(X,'rows');
   end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...