尝试使用mex将两个输出从fortran返回到matlab

时间:2015-08-10 19:31:01

标签: matlab fortran mex

所以这是有问题的代码。我只需要一个数字并乘以2.我几乎将它两次附加到输出数组。在matlab中我做了= timestwo(2)我得到了4,但是当我做[a,b] = timestwo(2)时,我希望得到a = 4,b = 4,但是matlab只是崩溃了。我觉得我在这里缺少一些简单的东西,但有些见解会很棒。

   C     Create matrix for the return argument.
          plhs(1) = mxCreateDoubleMatrix(1, 1, 0)
          plhs(2)=mxCreateDoubleMatrix(1, 1, 0)
          y_ptr = mxGetPr(plhs(1))
          y_ptrr=mxGetPr(plhs(2))

    C     Call the computational subroutine.
            call timestwo(y_output, x_input)
            call timestwo(y_outputt,x_inputt)
    C     Load the data into y_ptr, which is the output to MATLAB.
          call mxCopyReal8ToPtr(y_output,y_ptr,size)
          call mxCopyReal8ToPtr(y_outputt,y_ptrr,size)

0 个答案:

没有答案