István Zachar
István Zachar

Reputation: 1344

Is there a general uniques counting function?

By general, I mean it can count the different elements in the input given it is either a list of numbers (or other atoms), a list of vectors or a list of matrices.

Example: given a list of row vectors of length 3:

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

the expected outcome should be:

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

returned in e.g. two lists. I know about the count_uniques function, but it deals with non-array inputs only, as far as I know.

Upvotes: 1

Views: 60

Answers (1)

Oli
Oli

Reputation: 16045

You can use unique. If the input is an array use unique(X,'rows').

If you want a universal function you can do:

function varargout=universal_unique(X);
   if(size(X,2)==1)
      [varargout{:}]=unique(X);
    else
      [varargout{:}]=unique(X,'rows');
   end
end

Upvotes: 2

Related Questions