Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MAT_VARCREATESTRUCT(3)	 BSD 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
     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)

BSD				March 18, 2012				   BSD

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Mat_VarCreateStruct&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help