Unique and Length of every rows of a matrix
Afficher commentaires plus anciens
Hi,
The problem I want to solve is to "filter" the rows of a matrix n x 256. The filter criteria is to keep only the rows where the number of unique elements is between a certain range.
For example, if I have a range of 2:5, and a matrix of double similar to (i know it is not n x 256 for clarity) :
A = [ [1,1,1,4,5,3,3,5,6,1], [2,4,1,5,6,6,6,8,3,2] ... ];
I want to apply unique to every rows of A:
B = [ [1,4,5,3,6], [2,4,1,5,6,7,3] ... ];
Then I want to get the length of every rows of B:
C = [5,7,...];
Then I would like to keep only the rows of A where the corresponding C is in the range. Only the values of C inside the specified range should be kept (ie: 2:5) :
D = [5,...];
I think I could use the indexes of the C matrix that satisfies the criteria to filter A, but I do not know how...
Finally, A would look like :
A = [ [1,1,1,4,5,3,3,5,6,1], ... ];
What would be the quickest way to achieve this? Thank you for your inputs!
J-P
3 commentaires
Oleg Komarov
le 23 Juil 2011
Is A a double or a cell array?
Is in the range, which range?
Jean-Philippe
le 23 Juil 2011
Oleg Komarov
le 23 Juil 2011
Edited below
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!