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

FreeBSD Manual Pages

  
 
  

home | help
MAT_REWIND(3)		 BSD Library Functions Manual		 MAT_REWIND(3)

NAME
     Mat_Rewind	-- Rewind an open .mat file to the beginning

SYNOPSIS
     #include <matio.h>

     int
     Mat_Rewind(mat_t *matfp);

DESCRIPTION
     Rewinds an	open .mat file so that Mat_VarReadNext(3) or
     Mat_VarReadNextInfo(3) reads the first variable in	the file.

RETURN VALUES
     The function returns 0 on success,	or -1 on failure.

EXAMPLES
     The following example shows a list	of variables in	the MAT	file, and
     prompts the user for the index of the variable to read. If	the index is
     valid, the	file is	reset to the beginning,	and variables read until the
     selected index is reached.

     #include <stdlib.h>
     #include <stdio.h>
     #include "matio.h"

     int
     main(int argc,char	**argv)
     {
	 mat_t	  *matfp;
	 matvar_t *matvar;
	 int	   idx,	num_variables;

	 matfp = Mat_Open(argv[1],MAT_ACC_RDONLY);
	 if ( NULL == matfp ) {
	     fprintf(stderr,"Error opening MAT file %s0,argv[1]);
	     return EXIT_FAILURE;
	 }

	 idx = 0;
	 while ( NULL != (matvar = Mat_VarReadNextInfo(matfp)) ) {
	     idx++;
	     printf("%3d. %s0,idx,matvar->name);
	     Mat_VarFree(matvar);
	 }
	 num_variables = idx;
	 if ( num_variables > 0	) {
	     printf("Which variable would you like to read? ");
	     if	( 0 == fscanf(stdin,"%d",&idx) ) {
		 printf("Invalid variable selection!0);
	     } else if ( idx < 1 || idx	> num_variables	) {
		 fprintf(stderr,"That is an invalid variable index!0);
	     } else {
		 int k;
		 Mat_Rewind(matfp);
		 for ( k = 1; k	< idx; k++ ) {
		     matvar = Mat_VarReadNextInfo(matfp);
		     Mat_VarFree(matvar);
		 }
		 matvar	= Mat_VarReadNext(matfp);
		 Mat_VarPrint(matvar,1);
		 Mat_VarFree(matvar);
	     }
	 }

	 Mat_Close(matfp);
	 return	EXIT_SUCCESS;
     }

SEE ALSO
     Mat_Open(3), Mat_Close(3),	Mat_VarReadNext(3), Mat_VarReadNextInfo(3)

BSD				April 21, 2011				   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_Rewind&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help