Data extraction of dates

1 view (last 30 days)
Asanka Subasinghe
Asanka Subasinghe on 24 Mar 2020
Commented: Walter Roberson on 25 Mar 2020
I have a column of data with rainfall on each day, from 2004 to 2016. I want to be able to extract the rainfall data for each day and store that data into columns of months for each year. I have created a loop that finds the end day of all months from 2004 to 2016, but am having trouble now extracting the information.
[SL: formatted question as text not code]
  2 Comments
Mohammad Sami
Mohammad Sami on 24 Mar 2020
Edited: Mohammad Sami on 24 Mar 2020
Create a vector to store the index of the days (rows) you want to extract. Then you can simply subset.
Asanka Subasinghe
Asanka Subasinghe on 24 Mar 2020
I need some sort of loop because theres more than 4000 data points

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 24 Mar 2020
Edited: Walter Roberson on 24 Mar 2020
Dv = Dates(:) ;
Output = accumarray([day(Dv), month(Dv), year(Dv)-2003], Rainfall(:), [31 12 13], [], nan);
The result will be a 3d array with one pane for each year, with rows being day numbers, columns being month numbers. Unused entries such as shorter months or missing data will be set to nan
  6 Comments
Asanka Subasinghe
Asanka Subasinghe on 25 Mar 2020
clc;clear all;close all
filename='Data Q2 (2).xlsx';
data=(readtable(filename))
dandenongnum=data(:,2);
dandenongdate=data(:,1);
Dv=dandenongdate;
Output = accumarray([day(Dv), month(Dv), year(Dv)-2003], dandenongnum, [31 12 13], [], nan);
Walter Roberson
Walter Roberson on 25 Mar 2020
clc;clear all;close all
filename='Data Q2 (2).xlsx';
data=(readtable(filename))
dandenongnum=data{:,2};
dandenongdate=data{:,1};
Dv=dandenongdate;
Output = accumarray([day(Dv), month(Dv), year(Dv)-2003], dandenongnum, [31 12 13], [], nan);

Sign in to comment.

Categories

Find more on Dates and Time 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!