【发布时间】:2011-05-05 11:24:41
【问题描述】:
你好, 假设我有一个名为“myMx”的已编译 mex 文件,有没有办法禁止直接调用 myMx()?我只希望从我的 m 文件函数 callMyMx() 中调用 myMx(),因为这是我进行额外输入参数检查的地方,这样我就不必在 mex 文件本身中执行它。 谢谢!
【问题讨论】:
你好, 假设我有一个名为“myMx”的已编译 mex 文件,有没有办法禁止直接调用 myMx()?我只希望从我的 m 文件函数 callMyMx() 中调用 myMx(),因为这是我进行额外输入参数检查的地方,这样我就不必在 mex 文件本身中执行它。 谢谢!
【问题讨论】:
要确保其他功能无法访问myMx,您必须将其变为private function。简而言之,您在callMyMx 所在的目录中创建一个子目录private,并将myMx 移动到那里。这保证了只有callMyMx目录下的函数才能看到myMx。
【讨论】:
如果您想隐藏 mex 函数,甚至比 Jonas 的解决方案中的更多,您可以将它放在路径之外的文件夹中,然后让您的 m 文件在调用 mex 函数之前将位置添加到路径中,然后之后删除它。
没有使用私有文件夹那么优雅,它会增加计算开销,但它会确保没有其他函数可以调用 mex 函数。
【讨论】: