Variable in a string name

7 visualizzazioni (ultimi 30 giorni)
Andrew
Andrew il 23 Set 2014
Commentato: Andrew il 23 Set 2014
I am reading columns of binary files to plot. I have all my files in one folder and I want to plot them and pull out certain data. How can I set up a loop that will go through all the files?
My idea so far:
1) Use D= dir('W:\Folder')
to retrieve the names of all the files
2) for i= 1:70
str = ('W:\Folder\D(i)\Data')
fid = fopen(str);
How can I insert the different names in the array D from step 1?
I tried sprintf but I believe there is a problem because it's a path.
Thank you for your help

Risposta accettata

Geoff Hayes
Geoff Hayes il 23 Set 2014
Andrew - try using fullfile instead
foldername = 'W:\folder';
files = dir(foldername);
for k=1:length(files)
% ignore directories
if ~files(k).isdir
% build the file name
filename = fullfile(foldername,files(k).name);
% open the file
fid = fopen(filename);
if fid>0
% do stuff with file contents
% close the file
fclose(fid);
end
end
end
You can use sprintf as well (something like str = sprintf('W:\folder\%s\,files(k).name)' but the above should work just as well.
  2 Commenti
Image Analyst
Image Analyst il 23 Set 2014
Very robust. But after looking at his question again, I think he want to use dir() to get directories rather than files . Why do I think that? Because D(i) is in the middle of "W:\Folder\D(i)\Data" so he intends D(i) to be a folder name. So I think he wants all the subfolders of "Folder" and Data are files inside the subfolders, and unfortunately Data may not have any extension to the filename. SO maybe "if ~files(k).isdir" should actually be "if files(k).isdir"
Andrew
Andrew il 23 Set 2014
Thank you, I was able to work it out using fullfile

Accedi per commentare.

Più risposte (1)

Image Analyst
Image Analyst il 23 Set 2014
Use sprintf() to construct the filename from i.
filename = sprintf('W:/Folder/%s/Data.dat', D(i).name);

Categorie

Scopri di più su File Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by