259 Stars
Updated Last
10 Months Ago
Started In
December 2012


Build Status

Read and write MATLAB files in Julia

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


This is installed using the standard tools of the package manager:

pkg> add MAT

where you get the pkg> prompt by hitting ] as the first character of the line. (Exit pkg mode by hitting backspace or Ctrl-C as the first character of the line.)

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 (compressed files are detected and handled automatically):

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. The compress argument is optional, and compression is off by default:

matwrite("matfile.mat", Dict(
	"myvar1" => 0,
	"myvar2" => 1
); compress = true)

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

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

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

file = matopen("matfile.mat")
if haskey(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.