| MATLAB Application Program Interface Reference | Help Desk |
matGetDir
Get directory of mxArrays in a MAT-file
#include "mat.h" char **matGetDir(MATFile *mfp, int *num);
mfpPointer to MAT-file information.
numAddress of the variable to contain the number of mxArrays in the MAT-file.
This routine allows you to get a list of the names of the mxArrays contained within a MAT-file.matGetDir returns a pointer to an internal array containing pointers to the NULL-terminated names of the mxArrays in the MAT-file pointed to by mfp. The length of the internal array (number of mxArrays in the MAT-file) is placed into num. The internal array is allocated using a single mxCalloc and must be freed using mxFree when you are finished with it.
matGetDir returns NULL and sets num to a negative number if it fails. If num is zero, mfp contains no arrays.
MATLAB variable names can by up to length mxMAXNAM, where mxMAXNAM is defined in the file matrix.h.
Print out a directory of the mxArray names contained within a MAT-file:
/* mattest7.c */
#include <stdio.h>
#include "mat.h"
void main() {
MATFile *mfp;
char **dir;
int ndir,i;
mfp = matOpen("foo.mat","r");
dir = matGetDir(mfp,&ndir);
matClose(mfp);
if (dir == NULL && ndir < 0) {
printf("Can't read directory.\n");
exit(0);
} else {
printf("Directory of MAT-file:\n");
for (i = 0; i < ndir; i++) {
printf("%s\n",dir[i]);
}
}
mxFree(dir);
}
See matdemo.c in the eng_mat subdirectory of the examples directory for a sample program that illustrates how to use the MATLAB MAT-file routines in a C program.