필터 지우기
필터 지우기

How to automate reading multiple HDF files and saving the information from it?

조회 수: 10 (최근 30일)
Lucas Brande
Lucas Brande 2021년 4월 28일
답변: Vatsal 2024년 3월 1일
Hello!
I currently have a folder with 15.000 HDF files all named YYYYMMDD.HDF from data since 1997. So the first file is 19970101.HDF and the last one is 20203131.HDF
Each of these files has a matrix I need to save the values of (precipitation values)
With
hdfread("19970101.HDF","precipitation");
I can exctract the matrix for one of these files, which gets saved as ans.mat in my workplace.
Ideally I need a way to read all these HDF files and have them saved with their original name but in .mat, so 19970101.mat
I've tried plenty of things for the last 3 days but I can't come up with how to automate this process. I appreciate any help I can get.
Thanks in advance.

답변 (1개)

Vatsal
Vatsal 2024년 3월 1일
Hi,
Automating the reading of HDF files and saving the extracted information as .mat files with their original names can be achieved by writing a MATLAB script.
Below is an example illustrating how to implement this process:
% Define the folder where your HDF files are located
folderPath = 'path_to_your_folder'; % Replace with your folder path
% Get a list of all HDF files in the folder
hdfFiles = dir(fullfile(folderPath, '*.HDF'));
% Loop through each HDF file
for k = 1:length(hdfFiles)
% Construct the full file path
hdfFilePath = fullfile(folderPath, hdfFiles(k).name);
% Read the precipitation matrix from the HDF file
precipitation = hdfread(hdfFilePath, 'precipitation');
% Construct the new file name by replacing the HDF extension with MAT
matFileName = strrep(hdfFiles(k).name, '.HDF', '.mat');
% Construct the full path for the new .mat file
matFilePath = fullfile(folderPath, matFileName);
% Save the precipitation matrix to a .mat file
save(matFilePath, 'precipitation');
end
% Display a message when the process is complete
disp('All files have been processed and saved as .mat files.');
I hope this helps!

카테고리

Help CenterFile Exchange에서 HDF5에 대해 자세히 알아보기

제품


릴리스

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by