100 likes | 255 Views
Using HDF5 in MATLAB. Jeff Mather The MathWorks HDF/HDF-EOS Workshop XI (Nov. 2007). What is MATLAB?. A high-level programming language. An interactive design, exploration, and simulation environment. A platform for performing diverse tasks in many disciplines: Math and Optimization
E N D
Using HDF5 in MATLAB Jeff Mather The MathWorks HDF/HDF-EOS Workshop XI (Nov. 2007)
What is MATLAB? • A high-level programming language. • An interactive design, exploration, and simulation environment. • A platform for performing diverse tasks in many disciplines: • Math and Optimization • Statistics and Data Analysis • Control System Design and Analysis • Signal Processing and Communications • Image Processing • Test & Measurement • Financial Modeling and Analysis • Application Deployment • Database Connectivity and Reporting • Distributed Computing
MATLAB’s support for HDF products HDF4 (v4.2r1) HDF-EOS2 (v2.12v1.00) HDF5 (v1.6.5)
A typical HDF5 function herr_t H5Dread(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t xfer_plist_id, void * buf ) success = H5Dread(dataset, H5T_STD_I32BE, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer);
A typical HDF5 function herr_t H5Dread(hid_t dataset_id, hid_t mem_type_id, hid_t mem_space_id, hid_t file_space_id, hid_t xfer_plist_id, void * buf ) success = H5Dread(dataset, H5T_STD_I32BE, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); (1) Note the void*. (2) Note the frequent use of defined values and “constants.” (3) Note the success value on the left-hand side. (4) Note the appearance of output on the right-hand side.
A typical MATLAB function [N, X] = hist(DATA) • Multiple left-hand arguments. • Outputs on the left, inputs on the right. • Very weakly typed.
Calling an HDF5 function in MATLAB C success = H5Dread(dataset, H5T_STD_I32BE, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); MATLAB buffer = H5D.read(dataset, ‘H5T_STD_I32BE’, ‘H5S_ALL’, ‘H5S_ALL’, ‘H5P_DEFAULT’)
H5ML.compare_values H5ML.get_constant_names H5ML.get_constant_value H5ML.get_function_names H5ML.get_mem_datatype H5ML.hoffset H5ML.sizeof + H5ML.id The H5ML interface
Getting help • To see what’s in a package: “help H5D” • For help on an HDF5 function: “help H5D.read” • To use the full power of HDF5, you need to understand the C or Fortran interface. • E-mail support@mathworks.com.