Count unique values in a double
5 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (3 件)
Walter Roberson
2022 年 3 月 1 日
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 件のコメント
Peter Perkins
2022 年 3 月 2 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Data Type Conversion についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!