How do I use use sprtintf for a loop?
    3 views (last 30 days)
  
       Show older comments
    
I am needing to import a number of files from a folder using a loop so I dont have to re-write the code. The files are named 'Monday11' to 'Monday50' so created a loop using i=11:50. I then need a specific column to be read into matlab from each excel file from F5:F6005. My code so far is:
for i=11:50
    gA=sprintf('Monday%d.csv',i);
    gA(i)=readmatrix(gA);
end
How can I do this?
 thanks in advance!
0 Comments
Answers (1)
  dpb
      
      
 on 6 Dec 2020
        Probably the most-asked question of all...don't build the names, use dir
d=dir('Monday*.csv');       % better to use fully-qualified name search, but if files in local folder ok
for i=1:numel(d)
  data=readmatrix(d(i).name,'Range','F');
  % do whatever with the dataset here before going on to next...
end
2 Comments
  dpb
      
      
 on 6 Dec 2020
				So, what does
whos d
return after the call to dir()?
Sure you got the right folder so it isn't empty, first?
After that, then it's whether the data file is what is advertised to be.
NB: The way you wrote the loop above, all you will have will be the last file found; all the rest will have been overwritten the subsequent time thru the loop since nothing was done with those results first.
See Also
Categories
				Find more on Loops and Conditional Statements 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!
