---
name: "Mat_VarWriteAppend"
section: "3"
platform: "linux"
package: "libmatio"
version: "1.5.30-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Mat_VarWriteAppend"
---

# Mat\_VarWriteAppend(3)

Writes/appends a MATLAB variable to an HDF5 format MATLAB MAT file.

## NAME

**Mat\_VarWriteAppend** – Writes/appends a MATLAB variable to an HDF5 format MATLAB MAT file.

## SYNOPSIS

**#include \<matio.h\>**

*int*\

**Mat\_VarWriteAppend**(*mat\_t \*matfp*, *matvar\_t \*matvar*, *enum matio\_compression compress*, *int dim*);

## DESCRIPTION

The **Mat\_VarWriteAppend**() function writes (and optionally appends) the MATLAB variable *matvar* to the MAT file *matfp* which must be opened for writing. If the MATLAB variable already exists in the MAT file, the new data is appended to this variable along the (index 1 based) dimension *d*. The *compress* option allows the variable to be written using zlib compression if available. If compression is not available, the variable is written uncompressed.

## RETURN VALUES

The function returns 0 if the variable was successfully written/appended to the MAT file. Otherwise, an error value is returned.

## EXAMPLES

This example program creates a MAT file named by the first argument to the program, and writes the variable named *m\_pi* to the file in order to build a 2x1 array.

```
#include <math.h>
#include "matio.h"
int
main(int argc, char **argv)
{
    mat_t    *matfp;
    matvar_t *matvar;
    size_t    dims[2] = {1, 1};
    double    m_pi = M_PI;
    matfp = Mat_CreateVer(argv[1], NULL, MAT_FT_MAT73);
    if ( NULL == matfp ) {
        fprintf(stderr, "Error creating MAT file %s0, argv[1]);
        return EXIT_FAILURE;
    }
    matvar = Mat_VarCreate("m_pi", MAT_C_DOUBLE, MAT_T_DOUBLE,
                           2, dims, &m_pi, 0);
    if ( NULL != matvar ) {
        int dim = 1;
        Mat_VarWriteAppend(matfp, matvar, MAT_COMPRESSION_ZLIB, dim);
        Mat_VarWriteAppend(matfp, matvar, MAT_COMPRESSION_ZLIB, dim);
        Mat_VarFree(matvar);
    }
    Mat_Close(matfp);
    return EXIT_SUCCESS;
}
```

## SEE ALSO

[Mat\_CreateVer(3)](/Mat_CreateVer/3.md), [Mat\_Open(3)](/Mat_Open/3.md), [Mat\_VarRead(3)](/Mat_VarRead/3.md), [Mat\_VarWrite(3)](/Mat_VarWrite/3.md)
