C $Revision: 1.3 $ C ====================================================================== C C sincall.f C C example for illustrating how to use mexCallMATLAB C C creates an mxArray and passes its associated pointers (in this C demo, only pointer to its real part, pointer to number of rows, C pointer to number of columns) to subfunction fill() to get data C filled up, then calls mexCallMATLAB to calculate sin function and C plot the result. C C This is a MEX-file for MATLAB. C Copyright (c) 1984-98 by The MathWorks, Inc. C ====================================================================== C subroutine for filling up data subroutine fill(pr, m, n, max) real*8 pr(*) integer i, m, n, max m=max/2 n=1 do 10 i=1,m 10 pr(i)=i*(4*3.1415926/max) return end C gateway subroutine subroutine mexFunction(nlhs, plhs, nrhs, prhs) integer nlhs, nrhs C----------------------------------------------------------------------- C (integer) Replace integer by integer*8 on the DEC Alpha and the C SGI 64-bit platforms C integer plhs(*), prhs(*) integer rhs(1), lhs(1) integer mxGetPr, mxCreateFull C----------------------------------------------------------------------- C integer m, n, max C initializition m=1 n=1 max=1000 rhs(1) = mxCreateFull(max, 1, 0) C pass the integer and variable and let fill() fill up data call fill(%val(mxGetPr(rhs(1))), m, n, max) call mxSetM(rhs(1), m) call mxSetN(rhs(1), n) call mexCallMATLAB(1, lhs, 1, rhs, 'sin') call mexCallMATLAB(0, NULL, 1, lhs, 'plot') C cleanup the un-freed memory after calling mexCallMATLAB. call mxFreeMatrix(rhs(1)) call mxFreeMatrix(lhs(1)) return end