sprintf in a for loop

6 次查看(过去 30 天)
Faith
Faith 2018-10-13
评论: Faith 2018-10-13
Hi :) I'm having trouble creating a for loop for importing a series of netcdf files in Matlab. The only thing that changes each time is the number on the month for each of the 12 datasets, but when I run the loop, it puts the names of the datasets together so won't import them. Here's what I have been using:
A=1:12
for i=1:12
formatspec='filename-month%d-year.nc'
B=(sprintf(formatspec,A))
E=ncread(B,'netcdf_variable')
end
However, when I run this, it comes up with "could not open filename-month1-year.ncfilename-month2-year.ncfilename-month3-year.nc..." etc. Any help would be greatly appreciated, thanks!!

回答(1 个)

Image Analyst
Image Analyst 2018-10-13
Try this:
A=1:12
for i=1:12
fileName = sprintf('filename-month%d-year.nc', A(i));
E = ncread(fileName,'netcdf_variable')
end
  4 个评论
Image Analyst
Image Analyst 2018-10-13
I'd use the one in the FAQ that uses dir(). That way you get only files known to exist.
Then you process/analyze E in the loop and store the results somewhere, like in an Excel workbook or text file.
Faith
Faith 2018-10-13
Okay great thank you!

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by