Mercurial > octave-dspies
view examples/mex_demo.c @ 18679:a142f35f3cb6
doc: Fix unbalanced parentheses in documentation.
* errors.txi, install.txi, sparse.txi, vectorize.txi: Fix unbalanced
parentheses.
* data.cc (Fall, Feye): Fix unbalanced parentheses.
* rand.cc (Frandn, Frande): Fix unbalanced parentheses.
* amd.cc (Famd): Fix unbalanced parentheses.
* ccolamd.cc (Fccolamd): Fix unbalanced parentheses.
* DASPK-opts.in: Fix unbalanced parentheses.
* cplxpair.m, javamem.m, glpk.m, area.m, peaks.m, hgload.m, hotelling_test_2.m,
hgsave.m: Fix unbalanced parentheses.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 25 Apr 2014 15:49:03 -0700 |
parents | 877b82d73ed9 |
children |
line wrap: on
line source
// mex_demo.c -- example of a dynamically linked function for Octave. // To use this file, your version of Octave must support dynamic // linking. To find out if it does, type the command // // octave_config_info ("ENABLE_DYNAMIC_LINKING") // // at the Octave prompt. Support for dynamic linking is included if // this expression returns the string "yes". // // To compile this file, type the command // // mkoctfile --mex mex_demo.c // // from within Octave or from the shell prompt. This will create a file // called mex_demo.mex that can be loaded by Octave. To test the mex_demo.mex // file, start Octave and type the command // // d = mex_demo ("easy as", 1, 2, 3) // // at the Octave prompt. Octave should respond by printing // // Hello, world! // I have 4 inputs and 1 output // d = 1.2346 // Additional samples of code are in the examples directory of the Octave // distribution. See also the chapter External Code Interface in the // documentation. #include "mex.h" // Every user function should include "mex.h" which imports the basic set of // function prototypes necessary for dynamically linked functions. In // particular, it will declare mexFunction which is used by every function // which will be visible to Octave. A mexFunction is visible in Octave under // the name of the source code file without the extension. // The four arguments to mexFunction are: // 1) The number of return arguments (# of left-hand side args). // 2) An array of pointers to return arguments. // 3) The number of input arguments (# of right-hand side args). // 4) An array of pointers to input arguments. void mexFunction (int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { mexPrintf ("Hello, World!\n"); mexPrintf ("I have %d inputs and %d outputs\n", nrhs, nlhs); mxArray *v = mxCreateDoubleMatrix (1, 1, mxREAL); double *data = mxGetPr (v); *data = 1.23456789; plhs[0] = v; }