Count unique values in a double
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a single column double with a lot of repeated values. I need to find the number of unique elements of that list (don't care about where they are) and also produce a list of all of the unique values.
When I've tried using unique() and diff() i get these errors.
>> count = unique(x(:,1))
Subscripting into a table using one subscript (as in t(i)) or three or more subscripts (as in t(i,j,k)) is not
supported. Always specify a row subscript and a variable subscript, as in t(rows,vars).
>> b = x([diff(x)~=0, false])
Error using horzcat
Dimensions of arrays being concatenated are not consistent.
0 commentaires
Réponses (3)
Walter Roberson
le 1 Mar 2022
The first error suggests that you might happen to have a table() object named unique in your workspace.
The second error tells you that x has at least three rows, so diff(x)~=0 has at least two rows; you cannot horzcat() a single false onto multiple rows.
By the way, when using logical indexing, you can omit all trailing false in the dimension. For example,
x = 1:5
x([true false true false false]) %complete logical indexing
x([true false true]) %trailing false not needed
0 commentaires
Peter Perkins
le 2 Mar 2022
In addition to what Walter said, if you want the unique values of one variable in a table, likely this is what you should use:
count = unique(x.SomeVarName)
This
count = unique(x(:,1))
will return a shorter one-variable table. That's probably not what you want.
0 commentaires
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!