Mat_VarReadNextInfo man page

Mat_VarReadNextInfo — Reads the information for the next variable in a MATLAB MAT file.


#include <matio.h>

matvar_t *
Mat_VarReadNextInfo(mat_t *mat);


The Mat_VarReadNextInfo() function reads the information 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.


This example program opens a MAT file named by the first argument to the program, and uses Mat_VarReadNextInfo() to read the information about each variable in the file. For each variable read,the name, size, and class are printed in a format similar to the MATLAB whos command.

#include <stdlib.h> 
#include <stdio.h> 
#include "matio.h" 
static char *mxclass[16] = {"cell", "struct", "object","char","sparse", 
                            "double","single","int8", "uint8","int16","uint16", 
main(int argc,char **argv) 
    mat_t    *matfp; 
    matvar_t *matvar; 
    size_t    nbytes; 
    int       i; 
    char size[32] = {' ',}; 
    matfp = Mat_Open(argv[1],MAT_ACC_RDONLY); 
    if ( NULL == matfp ) { 
        fprintf(stderr,"Error opening MAT file %s0,argv[1]); 
        return EXIT_FAILURE; 
    printf("%-20s       %-10s     %-10s     %-18s0,"Name","Size","Bytes", 
    while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) { 
        printf("%-20s", matvar->name); 
        if ( matvar->rank > 0 ) { 
            int cnt = 0; 
            printf("%8d", matvar->dims[0]); 
            for ( i = 1; i < matvar->rank; i++ ) { 
                if ( ceil(log10(matvar->dims[i]))+1 < 32 ) 
                    cnt += sprintf(size+cnt,"x%d", matvar->dims[i]); 
        } else { 
            printf("                    "); 
        printf("  %-18s0,mxclass[matvar->class_type-1]); 
    return EXIT_SUCCESS; 

See Also

Mat_VarRead(3), Mat_VarReadNextInfo(3),

Referenced By

Mat_Rewind(3), Mat_VarReadInfo(3), Mat_VarReadNext(3).

April 21, 2011