how to find specific value in a table?

if i have hsl table like this, so how to find row that have value = 3 in column 1 (which is 'clusternya')?
i've tried to use
ind1= strfind(hsl.clusternya,'3')
but the error said like this:
Error using strfind
Cell must be a cell array of character vectors.

 Réponse acceptée

KSSV
KSSV le 11 Juin 2021
Modifié(e) : KSSV le 11 Juin 2021
idx = hsl.clusternya==3 ; % logical indexing
T(idx,:)

7 commentaires

Fabyola
Fabyola le 11 Juin 2021
Modifié(e) : Fabyola le 11 Juin 2021
i've tried and it said
Undefined operator '==' for input arguments of type 'cell'.
Stephen23
Stephen23 le 11 Juin 2021
Modifié(e) : Stephen23 le 11 Juin 2021
@Fabyola: why is clusternya a cell array if it apparently only contains scalar numerics?
If its data are all scalar numeric, then you should fix the creation/importing of this data, so that any numeric data is stored in numeric arrays, not in cell arrays. Then your data processing (like this question) will be much easier.
Fabyola
Fabyola le 11 Juin 2021
i used cell array for the enitre table because of the other columns contains a string, on those kelurahan's variable
Walter Roberson
Walter Roberson le 11 Juin 2021
The whole point of table objects is that each variable can be a different datatype. The kelurahan variable is the only one that needs to be cell (or string() object, or categorical object)
Stephen23
Stephen23 le 11 Juin 2021
@Fabyola: only kelurahan should be a string array or cell array of charactor vectors. All of the other data should be numeric vectors/arrays, otherwise you will make processing your numeric data very difficult.
Fabyola
Fabyola le 11 Juin 2021
aah i see, okaay i'll try them. thanks for your advice, all.
piston_pim_offset
piston_pim_offset le 4 Déc 2023
What if we have UITable in app designer @KSSV?

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 11 Juin 2021
ind1 = find(hsl.clusterya == 3)
But you should probably be considering, for example
mask1 = hsl.clusterya == 3;
dist = sqrt(hsl.v1(mask1).^2 + hsl.v2(mask1).^2)
because using logical masks is generally faster than using find()

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by