What is the easiest way to load all files from a folder with the same extension into MATLAB?
Previous solutions by me:
%%% Will load a file if its filename is provided
%%% USAGE: (Best save data to a variable to work with it.)
%%% >> x = loadwrapper('<file_name>')
%%% ... and then use 'x' all the way you want.
%%% <file_name> works with absolute and relative paths, too.
function [ loaded_data ] = loadwrapper( file_name )
files = dir(file_name);
loaded_data = load(files.name);
end
and
%%% put this in a new script, in a function it WILL NOT WORK!
%%% and fix your paths, ofc. i left mine in here on purpose.
%%% SETTINGS
folderName='/home/user/folder/';
extension='*.dat';
%%% CODE
concattedString=strcat(folderName, extension);
fileSet=dir(concattedString);
% loop from 1 through to the amount of rows
for i = 1:length(fileSet)
% load file with absolute path,
% the fileSet provides just the single filename
load (strcat(folderName, fileSet(i).name));
end
%%% TIDY UP
%%% only imported files shall stay in workspace area
clear folderName;
clear extension;
clear concattedString;
clear fileSet;
clear i;
To search for multiple files, use wildcards in the file name. For example, dir *. txt lists all files with a txt extension in the current folder. To search through folders and subfolders on the path recursively, use wildcards in the path name.
fullfile replaces all forward slashes ( / ) with backslashes ( \ ) on Windows. On UNIX® platforms, the backlash ( \ ) character is a valid character in file names and is not replaced. fullfile does not trim leading or trailing separators.
copyfile(' source','destination',' f ') copies source to destination , regardless of the read-only attribute of destination . [status,message,messageid] = copyfile ('source','destination',' f ') copies source to destination , returning the status, a message, and the MATLAB error message ID (see error and lasterr ).
You can use dir
to get all desired files. Then you can iterate over them with a for loop and call load
for each. For example, the following:
files = dir('C:\myfolder\*.txt');
for k = 1:length(files)
load(files(k).name, '-ascii')
end
loads all files in "C:\myfolder" with the extension "txt".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With