How to consolidate rows with same value, while adding their cells?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have NOAA climate data reported every 15 minutes and need to consolidate it into daily info. I want to add cells at the end of a row together that have the same date, and make a new matrix with the 'summed' and consolidated info. Here is a rough example of what I want to do:
FROM:
[date, precip
2/1, 4
2/1, 5
2/1, 6
2/2, 2
2/2, 3
2/2, 1
2/2, 4]
TO:
[date, precip
2/1, 15
2/2, 10]
0 Commenti
Risposta accettata
Doug Hull
il 12 Nov 2013
clear
d = {'date', 'precip'; '2/1', 4; '2/1', 5; '2/1', 6; '2/2', 2; '2/2', 3; '2/2', 1; '2/2',4}
dates = {d{2:end,1}};
amount = [d{2:end,2}];
[uniqueDates, firstInd, allInd] = unique(dates);
for i = 1:numel(firstInd)
totalRain(i) = sum(amount(allInd == i));
end
disp(uniqueDates)
disp(totalRain)
1 Commento
Azzi Abdelmalek
il 12 Nov 2013
Modificato: Azzi Abdelmalek
il 12 Nov 2013
Ethan commented
Thanks a bunch! working like a charm.
Più risposte (1)
Azzi Abdelmalek
il 12 Nov 2013
Modificato: Azzi Abdelmalek
il 12 Nov 2013
s = { '2/1', 4; '2/1', 5; '2/1', 6; '2/2', 2; '2/2', 3; '2/2', 1; '2/2',4}
[a,b,c]=unique(s(:,1),'stable')
out=[a num2cell(accumarray(c,cell2mat(s(:,2))))]
0 Commenti
Vedere anche
Categorie
Scopri di più su Climate Science and Analysis 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!