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.

 Akzeptierte Antwort

KSSV
KSSV am 11 Jun. 2021
Bearbeitet: KSSV am 11 Jun. 2021

1 Stimme

idx = hsl.clusternya==3 ; % logical indexing
T(idx,:)

7 Kommentare

Fabyola
Fabyola am 11 Jun. 2021
Bearbeitet: Fabyola am 11 Jun. 2021
i've tried and it said
Undefined operator '==' for input arguments of type 'cell'.
Stephen23
Stephen23 am 11 Jun. 2021
Bearbeitet: Stephen23 am 11 Jun. 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 am 11 Jun. 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 am 11 Jun. 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 am 11 Jun. 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 am 11 Jun. 2021
aah i see, okaay i'll try them. thanks for your advice, all.
piston_pim_offset
piston_pim_offset am 4 Dez. 2023
What if we have UITable in app designer @KSSV?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 11 Jun. 2021

2 Stimmen

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()

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by