MATLAB Answers

Using find command to group data into bins

2 views (last 30 days)
Ivan Mich
Ivan Mich on 26 Jul 2021
Commented: dpb on 26 Jul 2021
I have one ascii file with 2 columns (1st X and 2nd Y) .
I want to group the elements of X into bins (e.g. [2-4,4-6, etc) and I would like to group values of Y values based on the group of X values.
How could I use find command in order to make it?
Could you please help me?

Answers (3)

Cris LaPierre
Cris LaPierre on 26 Jul 2021
I wouldn't try to use find. I would try to use discretize, findgroups, or histcounts (or maybe histcounts2) instead.

dpb
dpb on 26 Jul 2021
find is not the tool for this; see
grpstats or groupsummary or for more generality, findgroups combined with splitapply

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 26 Jul 2021
If I have undersood your question correctly, in this case, find() is not quite efficient. Thus, you can better create just indxes, e.g.:
A1 = [X(2:4), Y(2:4)];
A2 = [X(4:6), Y(4:6)];
% OR:
XY=[X,Y];
B1 = XY(2:4,:);
B2 = XY(4:6,:);
  1 Comment
dpb
dpb on 26 Jul 2021
group the elements of X into bins (e.g. [2-4,4-6, etc)"
Raises the Q? of just precisely does this mean? I and Chris interpreted as grouping by the values of X whereas Sulaymon's A assumes just on the index order.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by