Есть ли способ использовать дескрипторы функций MATLAB в файлах MEX без функции mexCallMATLAB

В настоящее время я пишу файл MEX в C, чтобы ускорить код MATLAB, который в значительной степени зависит от функций. К сожалению, мой MEX файл работает медленнее, чем нужно, потому что мне нужно использовать mexCallMATLAB для оценки дескрипторов в MATLAB (как описано здесь).

Большинство ручек функций - это простые встроенные функции, которые принимают однородные случайные числа и генерируют случайные величины. Типичный пример:

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

Даже когда функции обрабатывают встроенные функции MATLAB, мой код позволяет пользователям использовать свои собственные дескрипторы функций, что мешает мне жестко кодировать функции в файл MEX.

В идеале я хотел бы предоставить MEX файл способ оценить этот дескриптор функции без необходимости использовать функцию mexCallMATLAB каждый раз. Кто-нибудь знает, как это можно сделать? Я открыт для любых предложений, которые у вас могут быть.

1 ответ

Насколько я знаю, это единственный способ. Способ помочь со скоростью будет состоять только в том, чтобы вызвать его только один раз - отправьте ему вектор значений, которые понадобятся, и используйте возвращаемый вектор в вашем файле mex.

licensed under cc by-sa 3.0 with attribution.