How to consolidate rows with same value, while adding their cells?

3 ビュー (過去 30 日間)
Ethan
Ethan 2013 年 11 月 12 日
編集済み: Azzi Abdelmalek 2013 年 11 月 12 日
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]

採用された回答

Doug Hull
Doug Hull 2013 年 11 月 12 日
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 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2013 年 11 月 12 日
編集済み: Azzi Abdelmalek 2013 年 11 月 12 日
Ethan commented
Thanks a bunch! working like a charm.

サインインしてコメントする。

その他の回答 (1 件)

Azzi Abdelmalek
Azzi Abdelmalek 2013 年 11 月 12 日
編集済み: Azzi Abdelmalek 2013 年 11 月 12 日
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))))]

カテゴリ

Help Center および File ExchangeClimate Science and Analysis についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by