【发布时间】:2014-01-21 13:26:26
【问题描述】:
关于Matlab和C函数的问题(我不是Matlab专家):
我有一个工作的 matlab 代码(从互联网下载),它调用 一个函数'foo':
[output] = foo(input)
现在,这个函数“foo”在一个“C”文件 (foo.c) 中定义,然后编译为 Matlab 的库 (foo.mexa64)。 查看 foo.c,我可以看到有两个函数:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])void foo(double* out, double* in);
据我了解,mexFunction() 为输入和输出分配指针,并用 Matlab 代码中的适当数据填充它们。
我的问题是:如果Matlab多次调用foo,是每次调用mexFunction()还是第一次调用?
【问题讨论】:
-
foo函数是从mexFunction调用的(在 C 文件中)。mexFunction就像一个网关,每次在 Matlab 中调用foo时都会被调用(就像入口函数)。但是,此调用不会对您的表现产生太大影响。