Skip to main content
`Ctrl`+`K`
scipy.io.

# savemat

scipy.io.savemat(file_name, mdict, appendmat=True, format='5', long_field_names=False, do_compression=False, oned_as='row')

  Save a dictionary of names and arrays into a MATLAB-style .mat file.

  This saves the array objects in the given dictionary to a MATLAB- style .mat file.

  Parameters:
    file_name str or file-like object

      Name of the .mat file (.mat extension not needed if `appendmat == True`). Can also pass open file_like object.

    mdict dict

      Dictionary from which to save matfile variables. Note that if this dict has a key starting with `_` or a sub-dict has a key starting with `_` or a digit, these key’s items will not be saved in the mat file and MatWriteWarning will be issued.

    appendmat bool, optional

      True (the default) to append the .mat extension to the end of the given filename, if not already present.

    format{‘5’, ‘4’}, string, optional

      ‘5’ (the default) for MATLAB 5 and up (to 7.2), ‘4’ for MATLAB 4 .mat files.

    long_field_names bool, optional

      False (the default) - maximum field name length in a structure is 31 characters which is the documented maximum length. True - maximum field name length in a structure is 63 characters which works for MATLAB 7.6+.

    do_compression bool, optional

      Whether or not to compress matrices on write. Default is False.

    oned_as{‘row’, ‘column’}, optional

      If ‘column’, write 1-D NumPy arrays as column vectors. If ‘row’, write 1-D NumPy arrays as row vectors.

  Examples

      >>> from scipy.io import savemat
      >>> import numpy as np
      >>> a = np.arange(20)
      >>> mdic = {"a": a, "label": "experiment"}
      >>> mdic
      {'a': array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
          17, 18, 19]),
      'label': 'experiment'}
      >>> savemat("matlab_matrix.mat", mdic)