Mat_VarCreateStruct (3) - Linux Manuals
Mat_VarCreateStruct: Creates a structure variable.
Command to display Mat_VarCreateStruct manual in Linux: $ man 3 Mat_VarCreateStruct
NAME
Mat_VarCreateStruct
- Creates a structure variable.
SYNOPSIS
Fd #include <matio.h>
Ft matvar_t *
Fo Mat_VarCreateStruct
Fa const char *name
Fa int rank
Fa size_t *dims
Fa const char **fields
Fa unsigned nfields
Fc
DESCRIPTION
The
Fn Mat_VarCreateStruct
function creates a structure variable named
Fa 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_VarFree3
. 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 %s,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_VarCreate3,
Mat_VarSetStructFieldByName3