User`s guide
4 Stand-Alone Applications
4-46
/* Print the results. */
mlfPrintMatrix(R);
/* Free the matrices allocated during this computation. */
mxDestroyArray(N);
mxDestroyArray(R);
PkgTerminate(); /* Terminate the library of M-functions */
}
An Explanation of mrankp.c
The heart of mrankp.c is a call to the mlfMrank function. Most of what comes
before this call is code that creates an input argument to
mlfMrank. Most of
what comes after this call is code that displays the vector that
mlfMrank
returns. First, the code must call the Compiler-generated library initialization
function.
PkgInitialize();/* Initialize the library of M-Functions */
To understand how to call mlfMrank, examine its C function header, which is
mxArray *mlfMrank(mxArray *n_rhs_)
According to the function header, mlfMrank expects one input parameter and
returns one value. All input and output parameters are pointers to the
mxArray
data type. (See “External Interfaces/API” in the MATLAB online
documentation for details on the
mxArray data type.) To create and manipulate
mxArray * variables in your C code, you can call the mx routines described in
the “External Interfaces/API” or any routine in the MATLAB C/C++ Math
Library. For example, to create a 1-by-1
mxArray * variable named N with real
data,
mrankp calls mlfScalar:
N = mlfScalar(n);
mrankp
can now call mlfMrank, passing the initialized N as the sole input
argument.
R = mlfMrank(N);
mlfMrank
returns a pointer to an mxArray * variable named R. The easiest way
to display the contents of
R is to call the mlfPrintMatrix convenience function:
mlfPrintMatrix(R);