有没有办法在MEX文件中使用MATLAB函数句柄而不使用mexCallMATLAB函数

时间:2012-03-21 02:31:22

标签: c matlab mex

我目前正在用C语言编写一个MEX文件来加速严重依赖函数句柄的MATLAB代码。不幸的是,我的MEX文件比它应该运行得慢,因为我必须使用mexCallMATLAB来评估MATLAB中的句柄(如here所述)。

大多数函数句柄都是简单的内联函数,它们采用统一的随机数并生成随机变量。一个典型的例子是:

f = @(u) exp(norminv(u)) 

即使函数处理使用内置的MATLAB函数,我的代码也必须允许用户使用自己的函数句柄,这使我无法将函数硬编码到MEX文件中。

理想情况下,我想为MEX文件提供一种评估此函数句柄的方法,而不必每次都使用mexCallMATLAB函数。有没有人知道如何做这样的事情?我愿意接受你的任何建议。

1 个答案:

答案 0 :(得分:1)

据我所知,这是唯一的方法。一种帮助速度的方法是只调用一次 - 向它发送一个需要的值的向量,并在mex文件中使用返回的向量。