Есть ли способ использовать функции MATLAB в файлах MEX без функции mexCallMATLAB - PullRequest
0 голосов
/ 21 марта 2012

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

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

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

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

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

1 Ответ

1 голос
/ 22 марта 2012

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

...