2011-05-05 43 views
1

嘿有, 假设我有一个名为'myMx'的编译mex文件,有没有办法禁止直接调用myMx()?我只希望将myMx()从我的m文件函数callMyMx()中调出,因为这是我在其中进行额外的输入参数检查的地方,所以我不必在mex文件本身中执行此操作。 谢谢!限制mex函数调用m文件在matlab

回答

6

要确保其他功能无法访问myMx,您必须将其设置为private function。简而言之,您在callMyMx所在的目录中创建一个子目录private,并在其中移动myMx。这保证只有callMyMx目录中的功能可以看到myMx

+0

谢谢你们两位! – tim 2011-05-05 16:22:46

0

如果你想隐藏mex函数甚至比Jonas的解决方案还要多,你可以把它放在一个离开路径的文件夹中,然后让你的m文件在调用mex函数之前将该位置添加到路径中并在之后删除它。

远不像使用私人文件夹那样优雅,它会增加计算开销,但它会确保没有其他函数可以调用mex函数。