reading .txt and .hdf5 file typed from the same folder
1 view (last 30 days)
Show older comments
I have a folder that contains data files of type .txt and .hdf5, I am using the follwoing code to read the text files from this folder
% Specify the folder where the files live.
myFolder = 'C:\Users\Windows 10 Pro\Desktop\JRO_Data';
% Check to make sure that folder actually exists. Warn user if it doesn't.
if ~isdir(myFolder)
errorMessage = sprintf('Error: The following folder does not exist:\n%s', myFolder);
uiwait(warndlg(errorMessage));
return;
end
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(myFolder, '*.*');
theFiles = dir(filePattern);
theFiles = theFiles(~[theFiles.isdir]); %remove folders from list
numfiles = length(theFiles);
DATA = cell(numfiles,2);
fullnames = fullfile({theFiles.folder}, {theFiles.name});
DATA(:,1) = fullnames(:); %cell array where we store the names of the files and the desired data
how can I modify this to be able to read .hdf5 as well, I am aware that there is a matlab function for reading such type but I am not sure how I can implement it in my code.
0 Comments
Answers (1)
Walter Roberson
on 2 Oct 2021
dataset_to_read = 'something_appropriate';
for K = 1 : numfiles
got_hdf = false; got_table = false;
thisfile = fullnames{K};
[~, ~, ext] = fileparts(thisfile);
if ismember(ext, {'.hdf5', '.h5'})
data = h5read(thisfile, dataset_to_read);
got_hdf = true;
elseif ismember(ext, {'.hdf4', '.h4'})
data = hdfread(thisfile, dataset_to_read);
got_hdf = true;
elseif ismember(ext, {'.csv', '.xls', '.xlsx'})
data = readtable(thisfile);
got_table = true;
elseif ismember(ext, '.xt')
data = something appropriate
end
end
3 Comments
Walter Roberson
on 4 Oct 2021
theFiles = [dir(fullfile(myFolder,'*.txt'));dir(fullfile(myFolder,'*.hdf5'))];
Walter Roberson
on 4 Oct 2021
dataset_to_read should be the HDF5 dataset path, not the folder to read the data into. The HDF5 dataset path will look similar to a unix path, starting with / and with parts separated by /
See Also
Categories
Find more on HDF5 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!