Passing arrays of strings adds a complication to the example Pass Strings. Because MATLAB^{®} stores
elements of a matrix by column instead of by row, the size of the
string array must be correctly defined in the Fortran MEX-file. The
key point is that the row and column sizes as defined in MATLAB must
be reversed in the Fortran MEX-file. So, when returning to MATLAB,
the output matrix must be transposed.

This example places a string array/character matrix into MATLAB as output arguments rather than placing it directly into the workspace.

To build this example, at the command prompt type:

`mex passstr.F`

Type:

passstr

to create the `5`

-by-`15`

`mystring`

matrix.
You need to do some further manipulation. The original string matrix
is `5`

-by-`15`

. Because of the way MATLAB reads
and orients elements in matrices, the size of the matrix must be defined
as `M=15`

and `N=5`

in the MEX-file.
After the matrix is put into MATLAB, the matrix must be transposed.
The program `passstr.F`

illustrates how to pass a
character matrix. To see the code `passstr.F`

, open
the fileopen
the file in MATLAB Editor.

Type:

passstr

ans = MATLAB The Scientific Computing Environment by TMW, Inc.

Was this topic helpful?