access sequence of file with date increment

I have sequence of files name as wrfout_2011-11-01,wrfout_2011-11-02 upto wrfout_2011-12-31 and for 2012 it will start from january wrfout_2012-01-01 to April wrfout_2012-04-30 and then it skip 6 month and then start fron wrfout_2012-11-01 to wrfout_12-12-31,so how can I read this date sequence from sequence of files.

Answers (2)

This answer is not going to specific only for WRF output files, but for all. First read all files and store their names in a variable. And sort if wish.
F=dir('wrfout*')
case_name = reshape({F.name}, [], 1);
If you want only numeric out of file names, then use
dates=cellfun(@(x) char(regexp(x,'\d*','Match')),case_name,'uni',0)
or if you numbers are on the same places in all files, then you can use
dates=cellfun(@(x) strcat(x(8:11),x(13:14),x(16:17)),aa,'uni',0)
If you want to convert into datenum format, then this example may help
A=20180924
a1=num2str(A)
datenum(str2double({a1(1:4),a1(5:6),a1(7:8)})); %for datenum format
A1=[str2double({a1(1:4),a1(5:6),a1(7:8)})] %for storing dates in vector

1 Comment

i only want to read dates in sequence,which I have given.

Sign in to comment.

There are other ways to do this, but here's one straight-forward way:
>> dates = [datetime(2011,11,1):caldays(1):datetime(2011,11,3) datetime(2012,1,1):caldays(1):datetime(2012,1,3)]
dates =
1×6 datetime array
01-Nov-2011 02-Nov-2011 03-Nov-2011 01-Jan-2012 02-Jan-2012 03-Jan-2012
>> filenames = string(dates,'''wrfout_''yyyy-MM-dd')
filenames =
1×6 string array
Columns 1 through 5
"wrfout_2011-11-01" "wrfout_2011-11-02" "wrfout_2011-11-03" "wrfout_2012-01-01" "wrfout_2012-01-02"
Column 6
"wrfout_2012-01-03"

Categories

Asked:

on 24 Sep 2018

Answered:

on 1 Oct 2018

Community Treasure Hunt

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

Start Hunting!