# scipy.io.mmwrite

scipy.io.mmwrite(target, a, comment='', field=None, precision=None, symmetry=None)

  Writes the sparse or dense array a to Matrix Market file-like target.

  Parameters:
    target str or file-like

      Matrix Market filename (extension .mtx) or open file-like object.

    a array like

      Sparse or dense 2-D array.

    comment str, optional

      Comments to be prepended to the Matrix Market file.

    field None or str, optional

      Either ‘real’, ‘complex’, ‘pattern’, or ‘integer’.

    precision None or int, optional

      Number of digits to display for real or complex values.

    symmetry None or str, optional

      Either ‘general’, ‘symmetric’, ‘skew-symmetric’, or ‘hermitian’. If symmetry is None the symmetry type of ‘a’ is determined by its values.

  Returns:
    None

  Examples

      >>> from io import BytesIO
      >>> import numpy as np
      >>> from scipy.sparse import coo_matrix
      >>> from scipy.io import mmwrite

  Write a small NumPy array to a matrix market file. The file will be written in the `'array'` format.

      >>> a = np.array([[1.0, 0, 0, 0], [0, 2.5, 0, 6.25]])
      >>> target = BytesIO()
      >>> mmwrite(target, a)
      >>> print(target.getvalue().decode('latin1'))
      %%MatrixMarket matrix array real general
      %
      2 4
      1.0000000000000000e+00
      0.0000000000000000e+00
      0.0000000000000000e+00
      2.5000000000000000e+00
      0.0000000000000000e+00
      0.0000000000000000e+00
      0.0000000000000000e+00
      6.2500000000000000e+00

  Add a comment to the output file, and set the precision to 3.

      >>> target = BytesIO()
      >>> mmwrite(target, a, comment='\n Some test data.\n', precision=3)
      >>> print(target.getvalue().decode('latin1'))
      %%MatrixMarket matrix array real general
      %
      % Some test data.
      %
      2 4
      1.000e+00
      0.000e+00
      0.000e+00
      2.500e+00
      0.000e+00
      0.000e+00
      0.000e+00
      6.250e+00

  Convert to a sparse matrix before calling `mmwrite`. This will result in the output format being `'coordinate'` rather than `'array'`.

      >>> target = BytesIO()
      >>> mmwrite(target, coo_matrix(a), precision=3)
      >>> print(target.getvalue().decode('latin1'))
      %%MatrixMarket matrix coordinate real general
      %
      2 4 3
      1 1 1.00e+00
      2 2 2.50e+00
      2 4 6.25e+00

  Write a complex Hermitian array to a matrix market file. Note that only six values are actually written to the file; the other values are implied by the symmetry.

      >>> z = np.array([[3, 1+2j, 4-3j], [1-2j, 1, -5j], [4+3j, 5j, 2.5]])
      >>> z
      array([[ 3. +0.j,  1. +2.j,  4. -3.j],
             [ 1. -2.j,  1. +0.j, -0. -5.j],
             [ 4. +3.j,  0. +5.j,  2.5+0.j]])

      >>> target = BytesIO()
      >>> mmwrite(target, z, precision=2)
      >>> print(target.getvalue().decode('latin1'))
      %%MatrixMarket matrix array complex hermitian
      %
      3 3
      3.00e+00 0.00e+00
      1.00e+00 -2.00e+00
      4.00e+00 3.00e+00
      1.00e+00 0.00e+00
      0.00e+00 5.00e+00
      2.50e+00 0.00e+00