save in a folder
Ältere Kommentare anzeigen
Hi,
I want to save in a folder mat files with a changing name.
for i=1:length(ID)
Filename=[num2cell(ID(i)) '.mat'];
save('C:\Users\Documents\MATLAB\TechnicalFinal\Filename','Close')
end
I am ending up with a file called Filename.mat instead of 1.mat,2.mat,and 3.mat where 1,2,3 are the ID number in the loop. Is there a way to fix that? Best
Akzeptierte Antwort
Weitere Antworten (1)
Image Analyst
am 3 Mär. 2013
Bearbeitet: Image Analyst
am 10 Nov. 2022
Follow the instructions in The FAQ. It covers changing mat filenames in a loop. It's also good to use fullfile() in addition to sprintf() to build the complete filename, as the second FAQ example shows.
folder = 'C:\Users\Documents\MATLAB\TechnicalFinal'; % Or wherever you want.
for k = 1 : length(ID)
% Create the base file name from the number contained in the "ID" variable.
baseFileName = sprintf('%3.3d.mat', ID(k)); % For example '037.mat'.
% Prepend the folder to get the full file name.
fullFileName = fullfile(folder, baseFileName);
% Save the variable (badly) named "Close" to this mat file.
save(fullFileName, 'Close');
end
I use 3.3d so that we will have 3 digits for the base file name and they will sort properly when the names are retrieved from dir() or when looking at the files in File Explorer. This will handle up to 999 files. If you have more than that increase the 3 to 4 or 5 or whatever is needed.
Kategorien
Mehr zu Startup and Shutdown finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!