An R package to read and write matlab files
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
inst Added OneOnly.mat test case data Apr 30, 2014
man Fix documentation link Jul 26, 2018
patches Update patches Jul 29, 2017
src work in progress to drop list item that is NULL Jul 27, 2018
tests work in progress to drop list item that is NULL Jul 27, 2018
.Rbuildignore Fix typo Jul 20, 2017
.gitignore Update .gitignore Aug 2, 2015
.travis.yml travis: fix broken '.travis.yml' file Jul 26, 2018
DESCRIPTION Bump version to for development Jul 28, 2017
LICENSE Added GPLv3 LICENSE file Jan 2, 2014
Makefile Update 'check' target in Makefile Jul 26, 2018
NAMESPACE Prefix 'download.file' and 'packageVersion' with 'utils::' May 25, 2017
NEWS Update NEWS Jul 26, 2018 Update README Jul 26, 2018
appveyor.yml Use new configuration for Windows in appveyor.yml Aug 2, 2015
cleanup Update 'cleanup' Dec 26, 2015 Add '' Dec 26, 2015
configure Drop initial work to enable mat73 in first release Jan 10, 2014 Update '' Dec 26, 2015

Build Status Build status CRAN status CRAN RStudio mirror downloads Coverage Status


rmatio is a package for reading and writing Matlab MAT files from R. rmatio supports reading MAT version 4, MAT version 5 and MAT compressed version 5. rmatio can write version 5 MAT files and version 5 files with variable compression.

Internally, the rmatio package uses the C library matio for reading/writing MATLAB MAT files.

You can track (and contribute to) development of rmatio at


To install the latest release on CRAN


To install the development version of rmatio, it's easiest to use the devtools package:

# install.packages("devtools")



Read a compressed version 5 MAT file from an URL

url <- paste("",
m <- read.mat(url)

View content


Write an uncompressed version 5 MAT file

write.mat(m, filename="test-uncompressed.mat", compression=FALSE, version="MAT5")

Write a compressed version 5 MAT file

write.mat(m, filename="test-compressed.mat", compression=TRUE, version="MAT5")

Check that the content of the files are identical

identical(read.mat("test-uncompressed.mat"), read.mat("test-compressed.mat"))

Read a version 4 MAT file with little-endian byte ordering

filename <- system.file('extdata/matio_test_cases_v4_le.mat', package='rmatio')
m <- read.mat(filename)

View content


Read a version 4 MAT file with big-endian byte ordering

filename <- system.file('extdata/matio_test_cases_v4_be.mat', package='rmatio')
m <- read.mat(filename)

View content


Included software


The rmatio package is licensed under the GPLv3. See these files for additional details:

  • LICENSE - rmatio package license (GPLv3)
  • inst/NOTICE - Copyright notices for additional included software