---
name: "Mat_VarReadNext"
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_VarReadNext"
---

# Mat\_VarReadNext(3)

Reads the information and data for the next variable in a MATLAB MAT file.

## NAME

**Mat\_VarReadNext** – Reads the information and data for the next variable in a MATLAB MAT file.

## SYNOPSIS

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

*matvar\_t* *\**\

**Mat\_VarReadNext**(*mat\_t \*matfp*);

## DESCRIPTION

The **Mat\_VarReadNext**() function reads the information and data for the next variable stored in the open MAT file.

## RETURN VALUES

If there is another variable in the MAT file and is read successfully, a pointer to the MATLAB variable structure is returned. If there are no more variables, or there was an error reading the variable, NULL is returned.

## EXAMPLES

This example program opens a MAT file named by the first argument to the program, and uses **Mat\_VarReadNext**() to read each variable in the file. For each variable read, the **Mat\_VarPrint**(*3*) function is used to display the information and data of the variable.

```
#include <stdlib.h>
#include <stdio.h>
#include "matio.h"
int
main(int argc, char **argv)
{
    mat_t    *matfp;
    matvar_t *matvar;
    matfp = Mat_Open(argv[1], MAT_ACC_RDONLY);
    if ( NULL == matfp ) {
        fprintf(stderr, "Error opening MAT file %s0, argv[1]);
        return EXIT_FAILURE;
    }
    while ( NULL != (matvar = Mat_VarReadNext(matfp)) ) {
        Mat_VarPrint(matvar, 1);
        Mat_VarFree(matvar);
    }
    Mat_Close(matfp);
    return EXIT_SUCCESS;
}
```

## SEE ALSO

[Mat\_VarRead(3)](/Mat_VarRead/3.md), [Mat\_VarReadNextInfo(3)](/Mat_VarReadNextInfo/3.md), [Mat\_VarPrint(3)](/Mat_VarPrint/3.md)
