2017-07-16 59 views
0

我开始与墨西哥MATLAB的合作,建立交流代码和我写了一个非常简单的代码(main.c中)开始说起:mexPrintf消息不MATLAB的命令窗口中显示

#include "stdio.h" 
#include "stdlib.h" 
#include "mex.h" 

void main() 
{ 
    mexPrintf("Hello world"); 
} 

当我输入mex main.c在matlab脚本中一切顺利,我有这样的信息:“用'gcc'构建.MEX成功完成。”但我没有看到消息“Hello world”,我也尝试过printf(),但没有成功,有人知道为什么消息不会出现在matlab窗口上吗?

在此先感谢您的帮助。

-J

+0

从您的问题听起来您只是将代码编译为mexfile。你执行了mexfile吗? – user4581301

+0

感谢您编辑我的代码@ user4581301。是的,我执行了代码,但它没有工作,实际上它需要一个mexFunction,它工作正常。 – mja

回答

1

您的代码,因为它的立场,不与Matlab的兼容。 Matlab需要编译程序的'main'函数的特殊函数定义。

为了运行你的代码,你需要有这样的事情:

#include "stdio.h" 
#include "stdlib.h" 
#include "mex.h" 

void mexFunction(int nlhs, mxArray *plhs[], 
      int nrhs, const mxArray*prhs[]) 
{ 
    mexPrintf("Hello world\n"); 
} 

假设这是摆在题为“helloWorld.c”文件,你可以在运行以下命令Matlab提示:

mex helloWorld.c 
helloWorld 
+0

是的,你是绝对正确的@ acampb311,我的代码需要一个mexFuction,当我添加它时,它工作完美,非常感谢你! – mja