MAT_VARREADNEXTINFO(3) Library Functions Manual MAT_VARREADNEXTINFO(3) NAME Mat_VarReadNextInfo - Reads the information for the next variable in a MATLAB MAT file. SYNOPSIS #include matvar_t * Mat_VarReadNextInfo(mat_t *matfp); DESCRIPTION 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. EXAMPLES 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 #include #include #include "matio.h" static char *mxclass[17] = {"cell", "struct", "object", "char", "sparse", "double", "single", "int8", "uint8", "int16", "uint16", "int32", "uint32", "int64", "uint64", "function", "opaque" }; int main(int argc, char **argv) { mat_t *matfp; matvar_t *matvar; 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("%-32s%-16s%-16s%-16s0, "Name", "Size", "Bytes", "Class"); while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) { printf("%-32s", matvar->name); if ( matvar->rank > 0 ) { int cnt; int i; cnt = snprintf(size, sizeof(size), "%zd", matvar->dims[0]); for ( i = 1; i < matvar->rank; i++ ) { if ( ceil(log10((double)matvar->dims[i])) + 1 < 32 ) { cnt += snprintf(size + cnt, sizeof(size) - cnt, "x%zd", matvar->dims[i]); if ( cnt >= sizeof(size) ) { break; } } } printf("%-16s", size); } else { printf(" "); } snprintf(size, sizeof(size), "%zd", Mat_VarGetSize(matvar)); printf("%-16s", size); printf("%-16s0, mxclass[matvar->class_type - 1]); Mat_VarFree(matvar); } Mat_Close(matfp); return EXIT_SUCCESS; } SEE ALSO Mat_VarRead(3), Mat_VarReadInfo(3), Mat_VarReadNext(3) Linux 6.11.5-arch1-1 March 4, 2024 Linux 6.11.5-arch1-1