Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JuliaIO/MAT.jl
Julia module for reading MATLAB files
https://github.com/JuliaIO/MAT.jl
julia mat
Last synced: about 2 months ago
JSON representation
Julia module for reading MATLAB files
- Host: GitHub
- URL: https://github.com/JuliaIO/MAT.jl
- Owner: JuliaIO
- License: mit
- Created: 2012-12-02T07:54:47.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2024-05-20T16:31:44.000Z (5 months ago)
- Last Synced: 2024-06-29T04:33:48.169Z (3 months ago)
- Topics: julia, mat
- Language: Julia
- Homepage:
- Size: 1.19 MB
- Stars: 278
- Watchers: 21
- Forks: 76
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# MAT.jl
[![Build Status](https://github.com/JuliaIO/MAT.jl/workflows/CI/badge.svg?branch=master)](https://github.com/JuliaIO/MAT.jl/actions)[![docs-stable][docs-stable-img]][docs-stable-url]
[![docs-dev][docs-dev-img]][docs-dev-url]### Read and write MATLAB files in Julia
This library can read MATLAB `.mat` files, both in the older v4/v5/v6/v7 format, as well as the newer v7.3 format.
## Installation
This is installed using the standard tools of the [package manager](https://julialang.github.io/Pkg.jl/v1/getting-started/):
```julia
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](https://github.com/timholy/HDF5.jl/) module, used for "v7.3" files and for writing \*.mat files.
## Usage
To load the module:
```julia
using MAT
```To read a single variable from a MAT file (compressed files are detected and handled automatically):
```julia
file = matopen("matfile.mat")
read(file, "varname") # note that this does NOT introduce a variable ``varname`` into scope
close(file)
```To write a variable to a MAT file:
```julia
file = matopen("matfile.mat", "w")
write(file, "varname", variable)
close(file)
```To read all variables from a MAT file as a Dict:
```julia
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:```julia
matwrite("matfile.mat", Dict(
"myvar1" => 0,
"myvar2" => 1
); compress = true)
```To write in MATLAB v4 format:
```julia
matwrite("matfile.mat", Dict(
"myvar1" => 0,
"myvar2" => 1
);version="v4")
```To get a list of variable names in a MAT file:
```julia
file = matopen("matfile.mat")
varnames = keys(file)
close(file)
```To check for the presence of a variable name in a MAT file:
```julia
file = matopen("matfile.mat")
if haskey(file, "variable")
# something
end
close(file)
```## Caveats
* All files are written in MATLAB v7.3 format by default.
* Writing in MATLAB v4 format is provided by the matwrite function with keyword argument.## Credits
The MAT_HDF5 module, which provides read/write support for MATLAB v7.3 files, was written primarily by [Tim Holy](https://github.com/timholy/). The MAT_v5 module, which provides read support for MATLAB v5/v6/v7 files, was written primarily by [Simon Kornblith](https://github.com/simonster/). The MAT_v4 module, which provides read and write support for MATLAB v4 files, was written primarily by [Victor Saase](https://github.com/vsaase/).
[docs-stable-img]: https://img.shields.io/badge/docs-stable-blue.svg
[docs-stable-url]: https://JuliaIO.github.io/MAT.jl/stable
[docs-dev-img]: https://img.shields.io/badge/docs-dev-blue.svg
[docs-dev-url]: https://JuliaIO.github.io/MAT.jl/dev