Search code examples
matlabdatefor-loopdatetimematlab-figure

How to plot a graph for specific day of every month for whole Year MATLAB


I have two variables called x and y. Each has 24*365 values. 24 presents the number of hours in a day and 365 presents the number of days in a year. I am plotting the values of 12th hour and 25th day by the following command:

plot(x(12:12,25), y(12:12,25))

Now I want to do the same for every 25th day for a whole year. Like 25th of Jan, 25th of Feb, 25th of March. I am not bothered about values of hours but I don't know how to create its logic as every month has different number of days.


Solution

  • You can generate the day of year number by getting the datenum values for the 25th of each month and subtracting the datenum of the 1st Jan that year.

    dayIdx = datenum(2022,1:12,25) - datenum(2022,1,1) + 1;
    

    Then just use this as your column index

    plot(x(12,dayIdx), y(12,dayIdx))
    

    The choice of 2022 above is arbitrary, as long as you pick a non-leapyear to get the 365-day year correct.