Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to open multiple files

Asked by AsYouWish

AsYouWish

on 12 Dec 2012
Accepted Answer by Walter Roberson

Walter Roberson

I think I posted this question in the wrong place earlier. I searched the Answers but didn't see anything that helped me.

I have code that opens a file, modifies the file, then saves the file with a new extension. I would like to be able to select multiple files in a directory, modify each one and then save each one with the new extension.

Here is my code to open a single file:

DefaultFile='';
[oldFileName,PathName] = uigetfile('*.txt','Select File to Modify',DefaultFile);
fid=fopen(fullfile(PathName,oldFileName));

Here is my code to save the file with a new extension:

[folder, oldBaseName, oldExt] = fileparts(oldFileName);
newBaseName = sprintf('%s.rsp',oldBaseName);
newFullFileName = fullfile(folder, newBaseName);
fileID = fopen(newFullFileName,'w');
fprintf(fileID,'%15s\r\n','# MHz Y RI R 50');
fprintf(fileID,'%6.2f %12.8f %12.8f\r\n',dataExport);
fclose(fileID);

So, how do I create a loop to be able to: 1. Select multiple files (number of files will vary each time I run this). 2. Modify my file (I have the code to do that). 3. Save the modified file with the new extension (see code above). 4. Repeat steps 2 and 3 until all files have been modified.

Thanks.

0 Comments

AsYouWish

AsYouWish

Products

No products are associated with this question.

2 Answers

Answer by Walter Roberson

Walter Roberson

on 12 Dec 2012
Accepted answer

Use uigetfile() with 'MultiSelect', 'on'. Then a cell array of strings is returned for the file name. You can loop through that.

5 Comments

AsYouWish

AsYouWish

on 12 Dec 2012

So I ran the code and I can open the cell array and see that all files have been read in but I am not sure how to cycle through each file with the loop. Any tips?

Thanks.

Walter Roberson

Walter Roberson

on 12 Dec 2012
[oldFileNames,PathName] = uigetfile('*.dat','Select the dat-files', 'MultiSelect','on');
for K = 1 : length(oldFileNames)
  oldFileName = oldFileNames{K};
  [....]
end
AsYouWish

AsYouWish

on 12 Dec 2012

Thanks. That works great!

Walter Roberson

Walter Roberson

Answer by Image Analyst

Image Analyst

on 12 Dec 2012

1 Comment

AsYouWish

AsYouWish

on 12 Dec 2012

I downloaded the dll and will give it a try this morning. Thanks.

Image Analyst

Image Analyst

Contact us