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

FreeBSD Manual Pages

  
 
  

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

NAME
     Mat_Rewind -- Rewinds 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() or Mat_VarReadNextInfo()
     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 se-
     lected 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),
     Mat_VarPrint(3)

FreeBSD ports 15.quarterly     September 12, 2019		   MAT_REWIND(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Mat_Rewind&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help