<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239499</link>
    <title>MATLAB Central Newsreader - [MEX] mxCreateStructMatrix in Fortran</title>
    <description>Feed for thread: [MEX] mxCreateStructMatrix in Fortran</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Wed, 19 Nov 2008 13:04:02 -0500</pubDate>
      <title>[MEX] mxCreateStructMatrix in Fortran</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239499#611785</link>
      <author>Francois Mourougaya</author>
      <description>Hello everyone,&lt;br&gt;
&lt;br&gt;
I'm having problems using mxCreateStructMatrix.&lt;br&gt;
&lt;br&gt;
I created a gateway function in Fortran (&quot;test.F&quot;) looking like this :&lt;br&gt;
&lt;br&gt;
#include &amp;lt;fintrf.h&amp;gt;&lt;br&gt;
C&lt;br&gt;
C TESTSTRUCT.F - Gateway function for TESTSTRUCT.F&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SUBROUTINE MEXFUNCTION(NLHS, PLHS, NRHS, PRHS)&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MWPOINTER PLHS(*), PRHS(*)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;INTEGER NLHS, NRHS&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MWPOINTER MXCREATEDOUBLEMATRIX, MXGETPR, MXCREATESTRUCTMATRIX&lt;br&gt;
&lt;br&gt;
C VARIABLES DECLARATION&lt;br&gt;
C--------------------------------------------------------------------------&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;REAL*4 NBFILD&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CHARACTER*12 FIELDS(6)&lt;br&gt;
&lt;br&gt;
C VARIABLES INITIALISATION&lt;br&gt;
C--------------------------------------------------------------------------&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;NBFILD= 6&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(1)='One'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(2)='Two'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(3)='Three'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(4)='Four'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(5)='Five'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FIELDS(6)='Six'&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PLHS(1) = MXCREATESTRUCTMATRIX(1, 1, NBFILD, FIELDS)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;RETURN&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;END&lt;br&gt;
&lt;br&gt;
I compiled it using &quot;mex test.F&quot;. As you can see, it should do nothing but give back en empty structure matrix, but when I run :&lt;br&gt;
A = test()&lt;br&gt;
Matlab returns :&lt;br&gt;
??? Out of memory. Type HELP MEMORY for your options.&lt;br&gt;
&lt;br&gt;
I know for sure it is comming from MXCREATESTRUCTMATRIX (I ran some tests).&lt;br&gt;
&lt;br&gt;
Any idea what I'm doing wrong ?&lt;br&gt;
&lt;br&gt;
Thanks a lot in advance,&lt;br&gt;
Fran?ois.</description>
    </item>
    <item>
      <pubDate>Wed, 19 Nov 2008 15:48:03 -0500</pubDate>
      <title>Re: [MEX] mxCreateStructMatrix in Fortran</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239499#611826</link>
      <author>Gadi Reinhorn</author>
      <description>Francois,&lt;br&gt;
&lt;br&gt;
The third argument needs to be an interger not real.&lt;br&gt;
&lt;a href=&quot;http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/mxcreatestructmatrix.html&quot;&gt;http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/mxcreatestructmatrix.html&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Change&lt;br&gt;
REAL*4 NBFILD&lt;br&gt;
to&lt;br&gt;
INTEGER*4 NBFILD&lt;br&gt;
&lt;br&gt;
I made this change and got your test to work.&lt;br&gt;
&lt;br&gt;
Hope that helps,&lt;br&gt;
Gadi&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&quot;Francois Mourougaya&quot; &amp;lt;framou1980@yahoo.fr&amp;gt; wrote in message &lt;br&gt;
news:gg12s2$ajt$1@fred.mathworks.com...&lt;br&gt;
&amp;gt; Hello everyone,&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I'm having problems using mxCreateStructMatrix.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I created a gateway function in Fortran (&quot;test.F&quot;) looking like this :&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; #include &amp;lt;fintrf.h&amp;gt;&lt;br&gt;
&amp;gt; C&lt;br&gt;
&amp;gt; C TESTSTRUCT.F - Gateway function for TESTSTRUCT.F&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;      SUBROUTINE MEXFUNCTION(NLHS, PLHS, NRHS, PRHS)&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;      MWPOINTER PLHS(*), PRHS(*)&lt;br&gt;
&amp;gt;      INTEGER NLHS, NRHS&lt;br&gt;
&amp;gt;      MWPOINTER MXCREATEDOUBLEMATRIX, MXGETPR, MXCREATESTRUCTMATRIX&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; C VARIABLES DECLARATION&lt;br&gt;
&amp;gt; C--------------------------------------------------------------------------&lt;br&gt;
&amp;gt;      REAL*4 NBFILD&lt;br&gt;
&amp;gt;      CHARACTER*12 FIELDS(6)&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; C VARIABLES INITIALISATION&lt;br&gt;
&amp;gt; C--------------------------------------------------------------------------&lt;br&gt;
&amp;gt;      NBFILD= 6&lt;br&gt;
&amp;gt;      FIELDS(1)='One'&lt;br&gt;
&amp;gt;      FIELDS(2)='Two'&lt;br&gt;
&amp;gt;      FIELDS(3)='Three'&lt;br&gt;
&amp;gt;      FIELDS(4)='Four'&lt;br&gt;
&amp;gt;      FIELDS(5)='Five'&lt;br&gt;
&amp;gt;      FIELDS(6)='Six'&lt;br&gt;
&amp;gt;      PLHS(1) = MXCREATESTRUCTMATRIX(1, 1, NBFILD, FIELDS)&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt;      RETURN&lt;br&gt;
&amp;gt;      END&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I compiled it using &quot;mex test.F&quot;. As you can see, it should do nothing but &lt;br&gt;
&amp;gt; give back en empty structure matrix, but when I run :&lt;br&gt;
&amp;gt; A = test()&lt;br&gt;
&amp;gt; Matlab returns :&lt;br&gt;
&amp;gt; ??? Out of memory. Type HELP MEMORY for your options.&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; I know for sure it is comming from MXCREATESTRUCTMATRIX (I ran some &lt;br&gt;
&amp;gt; tests).&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Any idea what I'm doing wrong ?&lt;br&gt;
&amp;gt;&lt;br&gt;
&amp;gt; Thanks a lot in advance,&lt;br&gt;
&amp;gt; Fran?ois. </description>
    </item>
    <item>
      <pubDate>Wed, 19 Nov 2008 15:57:02 -0500</pubDate>
      <title>Re: [MEX] mxCreateStructMatrix in Fortran</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/239499#611828</link>
      <author>Francois Mourougaya</author>
      <description>Thanks a lot ! What a stupid mistake !</description>
    </item>
  </channel>
</rss>

