How to add text from name of .txt-file into string in a cell?

1 view (last 30 days)
Hi! I wonder if it is possible to add the name of a textfile for example: 200807.txt into strings in a cell that looks like this:
'METAR ESDF 010020Z AUTO 31003KT 230V350 9999NDV NCD 12/08 Q1017'
'METAR ESDF 010050Z AUTO 24003KT 230V320 9999NDV NCD 12/08 Q1017'
'METAR ESDF 010120Z AUTO 25003KT 230V350 9999NDV NCD 11/08 Q1017'
The strings exists in a .txt-file containing 45000 rows approximately that is imported with fread(). The only information about the year and month of the data is from the filename itself. The problem is that I would like to add the name of the file which contains the information about year and month to the part '010020Z'. That would provide a unique date and time to my strings that I could later use with datevec or datenum. Is there a way of doing this with matlab?
Thankful of your help!
  2 Comments
Jim Hokanson
Jim Hokanson on 6 Oct 2016
It would be helpful to provide an example of what your output should look like.
Linus Dock
Linus Dock on 6 Oct 2016
It should look something like this:
'METAR ESDF 200807010120Z AUTO 25003KT 230V350 9999NDV NCD 11/08 Q1017'

Sign in to comment.

Accepted Answer

Guillaume
Guillaume on 6 Oct 2016
regexprep(yourcellarray, 'd{6}Z', sprintf('%s$0', stringtoadd))
The above regular expression matches exactly 6 digits followed by Z and prepend that section with whichever string you want to add.
  1 Comment
Linus Dock
Linus Dock on 7 Oct 2016
Thank you! This is how it worked out.
flygplatsmetarYMDHM=cell(1,length(txtFiles))
filenamestr={txtFiles.name};
YYYYMM = regexprep(filenamestr, '.txt','')
for n=1:length(txtFiles)
flygplatsYYYYMM=Utcell{n};
yearmonth = YYYYMM{n}
flygplatsmetarYMDHM{n}=regexprep(flygplatsYYYYMM, '\d{6}Z', sprintf('%s$0', yearmonth))
end

Sign in to comment.

More Answers (0)

Categories

Find more on Characters and Strings 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!