MATLAB Answers


How to open multiple files

Asked by AsYouWish
on 12 Dec 2012

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:

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

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);

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.




No products are associated with this question.

2 Answers

Answer by 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.


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?


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

Thanks. That works great!

Answer by Image Analyst
on 12 Dec 2012

  1 Comment

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

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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!