Azzera filtri
Azzera filtri

find maximum value for each year in a 2 columns array

1 visualizzazione (ultimi 30 giorni)
I have an array with two columns, column one year (1975-2020) and column two discharge values. I need to find the maximum discharge amount for each year and have them saved in another matrix.
Can you please help me with this?
input:
1975 200
1975 85
.
.
.
2002 110
2002 95
2002 32
...
2020 120
...
desired output
1975 200
...
2002 110
...
2020 120

Risposta accettata

Tommy
Tommy il 16 Apr 2020
Try this:
[G, y] = findgroups(input(:,1));
output = [y splitapply(@max, input(:,2), G)];
  5 Commenti
Tommy
Tommy il 16 Apr 2020
Modificato: Tommy il 16 Apr 2020
Switch the outputs.
[groups, years] = findgroups(year_Q(:,1));
>> output = [years splitapply(@max, year_Q(:,2), groups)];

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by