Mat_VarCreateStruct man page

Mat_VarCreateStruct — Creates a structure variable.

Synopsis

#include <matio.h>

matvar_t *
Mat_VarCreateStruct(const char *name, int rank, size_t *dims, const char **fields, unsigned nfields);

Description

The Mat_VarCreateStruct() function creates a structure variable named name that can be written to a MAT file.

Return Values

If the structure variable was successfully created, a pointer to the variable is returned. Otherwise NULL is returned. The structure variable pointer should be free'd when no longer needed using Mat_VarFree(3) after calling the function if necessary.

Examples

This example program opens a MAT file named by the first argument to the program, and writes a structure named a to the file.

#include "matio.h" 
 
int 
main(int argc,char **argv) 
{ 
    mat_t    *matfp; 
    matvar_t *matvar; 
    matvar_t *field; 
    const char *fields[2] = {"field1","field2"}; 
    double       data1 = 1, data2 = 2; 
    size_t       dims[2] = {1, 1}; 
 
    matfp = Mat_Open(argv[1],MAT_ACC_RDWR); 
    if ( NULL == matfp ) { 
        fprintf(stderr,"Error opening MAT file %s0,argv[1]); 
        return EXIT_FAILURE; 
    } 
 
    dims[0] = 1; dims[1] = 1; 
    matvar = Mat_VarCreateStruct("a",2,dims,fields,2); 
    if ( NULL == matvar ) { 
        Mat_Close(matfp); 
        return EXIT_FAILURE; 
    } 
 
    field = Mat_VarCreate(NULL,MAT_C_DOUBLE,MAT_T_DOUBLE,2,dims,&data1, 
                MAT_F_DONT_COPY_DATA); 
    Mat_VarSetStructFieldByName(matvar, "field1", 0, field); 
 
    field = Mat_VarCreate(NULL,MAT_C_DOUBLE,MAT_T_DOUBLE,2,dims,&data2, 
                MAT_F_DONT_COPY_DATA); 
    Mat_VarSetStructFieldByName(matvar, "field2", 0, field); 
 
    Mat_VarWrite(matfp,matvar,MAT_COMPRESSION_NONE); 
    Mat_VarFree(matvar); 
 
    Mat_Close(matfp); 
    return EXIT_SUCCESS; 
}

See Also

Mat_VarCreate(3), Mat_VarSetStructFieldByName(3)

Referenced By

Mat_VarAddStructField(3), Mat_VarCreate(3), Mat_VarFree(3).

March 18, 2012