Julia module for reading MATLAB files
Clone or download
yuyichao Merge pull request #89 from JuliaIO/yyc/empty_struct
Support reading empty struct from v7.3 MAT file.
Latest commit 657b61c Aug 19, 2018


Support for reading and writing MATLAB files in Julia.

Build Status

This library can read MATLAB .mat files, both in the older v5/v6/v7 format, as well as the newer v7.3 format.


Within Julia, use the package manager:


See also the requirements for the HDF5 module, used for "v7.3" files and for writing *.mat files.


To load the module:

using MAT

To read a single variable from a MAT file:

file = matopen("matfile.mat")
read(file, "varname") # note that this does NOT introduce a variable ``varname`` into scope

To write a variable to a MAT file:

file = matopen("matfile.mat", "w")
write(file, "varname", variable)

To read all variables from a MAT file as a Dict:

vars = matread("matfile.mat")

To write a Dict to a MAT file, using its keys as variable names:

matwrite("matfile.mat", Dict(
	"myvar1" => 0,
	"myvar2" => 1

To get a list of variable names in a MAT file:

file = matopen("matfile.mat")
varnames = names(file)

To check for the presence of a variable name in a MAT file:

file = matopen("matfile.mat")
if exists(file, "variable")
    # something


  • All files are written in MATLAB v7.3 format.
  • MATLAB v4 files are not currently supported.


The MAT_HDF5 module, which provides read/write support for MATLAB v7.3 files, was written primarily by Tim Holy. The MAT_v5 module, which provides read support for MATLAB v5/v6/v7 files, was written primarily by Simon Kornblith.