Ограничить вызов mex-функции для m-файла в matlab - PullRequest
1 голос
/ 05 мая 2011

Привет, при условии, что у меня есть скомпилированный mex-файл с именем «myMx», есть ли способ запретить прямые вызовы myMx ()? Я только хочу, чтобы myMx () вызывался из моей функции m-file callMyMx (), потому что там я делаю дополнительную проверку входных аргументов, чтобы мне не пришлось делать это в самом mex-файле. Спасибо!

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Чтобы другие функции не могли получить доступ к myMx, вы должны превратить его в частную функцию .Вкратце, вы создаете подкаталог private в каталоге, в котором находится callMyMx, и перемещаете туда myMx.Это гарантирует, что только функции в каталоге callMyMx могут видеть myMx.

0 голосов
/ 05 мая 2011

Если вы хотите скрыть функцию mex даже больше, чем в решении Jonas, вы можете поместить ее в папку вне пути, а затем попросить ваш m-файл добавить местоположение в путь перед вызовом функции mex иудалите его потом.

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

...