How to select specific row in a matrix

1 view (last 30 days)
AKHILESH KUMAR
AKHILESH KUMAR on 19 Mar 2018
Commented: Akira Agata on 21 Mar 2018
i have data like
doy time aod
5 05:46:46 0.62800
5 05:46:56 0.62100
5 05:47:07 0.61600
7 06:47:06 0.53600
7 06:47:16 0.53200
7 06:47:27 0.53500
11 08:31:35 0.64000
11 08:31:46 0.63400
11 08:31:57 0.62600
and i want this data like(for minimum aod in group)
5 05:47:07 0.61600
7 06:47:16 0.53200
11 08:31:57 0.62600
  2 Comments
James Tursa
James Tursa on 19 Mar 2018
How do you currently have the data stored? In a table variable? Or ...?

Sign in to comment.

Answers (1)

Akira Agata
Akira Agata on 20 Mar 2018
Assuming your data is stored in table format, say T, the following code can do that.
func = @(x) T(T.aod == min(x),:);
Tout = splitapply(func,T.aod,findgroups(T.doy));
The result is like this:
>> Tout
Tout =
3×3 table
doy time aod
___ ________ _____
5 05:47:07 0.616
7 06:47:16 0.532
11 08:31:57 0.626
  3 Comments
AKHILESH KUMAR
AKHILESH KUMAR on 20 Mar 2018
what is x and in MATLAB time, aod ,doy are string.
Akira Agata
Akira Agata on 21 Mar 2018
x is an input variable of an 'anonymous function'. Please visit the following link for more details.

Sign in to comment.

Categories

Find more on Frequently-used Algorithms in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!