table of contents
other versions
- buster 1.5.13-3
- testing 1.5.17-5
- unstable 1.5.19-2
- experimental 1.5.19-1
MAT_VARCREATESTRUCT(3) | Library Functions Manual | MAT_VARCREATESTRUCT(3) |
NAME¶
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¶
TheMat_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 usingMat_VarFree
(). The
names of the fields are copied in the function, and thus should be released
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)March 18, 2012 | Linux 4.19.0-10-amd64 |