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 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),
       Mat_VarPrint(3)

FreeBSD	Ports 14.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+14.3.quarterly>

home | help