Unique values per row

12 vues (au cours des 30 derniers jours)
Zee Imports
Zee Imports le 4 Nov 2018
Commenté : Zee Imports le 6 Nov 2018
Hi all, I'm struggling to figure a simple method to determine the number of unique values per row in a matrix. For example in the matrix [1 2 3; 4 4 5; 6 6 6]
I would expect the result to be [3, 2, 1] I've tried using unique() and histc but neither are giving me the result I am looking for. Thanks!
  2 commentaires
Stephan
Stephan le 4 Nov 2018
Modifié(e) : Stephan le 4 Nov 2018
Please explain the thoughts that lead to your expected result.
Zee Imports
Zee Imports le 4 Nov 2018
Hi, As there are 3x unique values in row 1, 2x unique values in row 2 and 1x unique values in row 3.
I have basically windowed an audio signal into a matrix and am now trying to find the number of unique values in each window

Connectez-vous pour commenter.

Réponse acceptée

Bruno Luong
Bruno Luong le 4 Nov 2018
>> A=[1 2 3; 4 4 5; 6 6 6]
A =
1 2 3
4 4 5
6 6 6
>> sum(diff(sort(A,2),1,2)~=0,2)+1
ans =
3
2
1
  1 commentaire
Zee Imports
Zee Imports le 6 Nov 2018
Thanks!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 4 Nov 2018
There is a vectorized way to compute this but it is not simple and it quickly gets expensive to calculate. Easier is
cellfun(@(c) length(unique(c)), num2cell(YourMatrix, 2))
  1 commentaire
Zee Imports
Zee Imports le 6 Nov 2018
Thanks!

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by