int matrix_load(matr,A,rdim,cdim,rlab,clab,lr,lc,type,expr)
char *matr; /* name of matrix file */
double **A; /* pointer to matrix space */
int *rdim; /* pointer to number of rows */
int *cdim; /* pointer to number of columns */
char **rlab; /* pointer to row labels space */
char **clab; /* pointer to column labels space */
int *lr; /* pointer to length of row label */
int *lc; /* pointer to length of column label */
int *type; /* pointer to type of matrix */
char *expr; /* matrix expression (internal name) */
The matrix_load function reads a matrix saved in a matrix file. It also allocates space (by malloc) for the matrix elements (of type double) and for the row and column labels. matrix_load does not allocate space for scalar parameters or for the matrix expression.
The elements of the matrix are read by columns in a one-dimensional
double array pointed by *A
and having the size
(*rdim)
*(*cdim)
*sizeof(double). Each row label has the length *lr
and
they are read in a one-dimensional character array pointed by *rlab
and
having the size (*lr)
*(*rdim)
. If rlab
is NULL, no space is allocated
and no row labels are read. Each column label has length of *lc
bytes
and they are read in an one-dimensional character array pointed by *clab
and having the size (*lc)
*(*cdim)
. If clab
is NULL, no space is
allocated and no column labels are read. *type
will be the type of the
matrix with possible values of
*type
=20 *type
=10 *type
=0 *expr
will be the internal name of the matrix (as a matrix
expression) of length 128 characters at most. Space is not allocated to
*expr
in matrix_load; it is the responsibility of the calling function
to have 129 bytes at least for *expr
. Similarly space must be allocated
for rdim
,cdim
,lr
,lc
and type
before the matrix_load call.
matrix_load returns -1 if matrix matr
is not found or if space cannot be
allocated for it. Upon successful completion of the function 1 is
returned.
matrix_save, matrix_print, library SURVOMAT.LIB
double *A;
int m,n;
char *rlab,*clab;
int lr,lc;
int type;
char expr[129];
matrix_load("MEANS",&A,&m,&n,&rlab,&clab,&lr,&lc,&type,expr);
reads an m
*n
matrix A
from a matrix file MEANS.MAT
on the current data
disk. The labels of rows are read in character array clab
and each label
has length lr
. The labels of columns are read in character array rlab
and each of them has length lc
. In most cases lr
=lc
=8. The type of
matrix is type
and its internal name is expr
.