how to extract previous week and month number of same hour?

I had load data of one year, half houly data of load (1*17520), I want to add a column having load data of previous week (same day & time period) and another column having previous day data at same time slot
We can keep blank for initial week/day data because for that previous data is not available here.

5 Comments

You split the date availables into days, months, years, hours, minutues, seconds using datevec. You can use indexing of months and time you want and get the value you want.
I need two separate column for prev week and prev day data
You can do it in multiple ways, it would be better to clear, if you can attach one same file
KSSV: if MUKESH KUMAR has the date and time data stored as a datetime array or as the time vector in a timetable, there's no need to split that data to jump backwards a day or a week.
d = datetime('now')
dMinusWeek = d - calweeks(1)
dMinusDay = d - caldays(1)

Sign in to comment.

 Accepted Answer

Hi,
Since the number of load entries per day is fixed at 48 (half-hourly data), this can be done using the circshift function on the load column in your data. Here is an example of how you can use circshift to achieve what you want:
X = readtable('Book1.xlsx');
NumEntriesPerDay = 48;
Data = X.load;
DataPrevDay = circshift(data,NumEntriesPerDay*1);
DataPrevDay(1:NumEntriesPerDay*1) = NaN;
DataPrevWeek = circshift(data,NumEntriesPerDay*7);
DataPrevWeek(1:NumEntriesPerDay*7) = NaN;
X.PreDayload = DataPrevDay;
X.PrevWeekLoad = DataPrevWeek;

More Answers (0)

Community Treasure Hunt

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

Start Hunting!