This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

Pass Matrices

In MATLAB®, you can pass matrices into and out of MEX files written in Fortran. You can manipulate the MATLAB arrays by using mxGetPr and mxGetPi to assign pointers to the real and imaginary parts of the data stored in the MATLAB arrays. You can create MATLAB arrays from within your MEX file by using mxCreateDoubleMatrix.

The example matsq.F takes a real 2-by-3 matrix and squares each element. To see the source code, open the file in MATLAB Editor.

After performing error checking to ensure that the correct number of inputs and outputs was assigned to the gateway subroutine and to verify the input was in fact a numeric matrix, matsq.F creates a matrix. The matrix is copied to a Fortran matrix using mxCopyPtrToReal8. Now the computational subroutine can be called, and the return argument is placed into y_pr, the pointer to the output, using mxCopyReal8ToPtr.

To build this example, at the command prompt type:

mex matsq.F

For a 2-by-3 real matrix, type:

x = [1 2 3; 4 5 6];
y = matsq(x)
y =
    1      4      9
   16     25     36

See Also

| |

Was this topic helpful?