This question already has an answer here:
How to unhide an overriden function?

(1个答案)


7年前关闭。




在我的Matlab路径上,有一个自定义的zeros函数。我想将内置zeros的句柄存储在变量中。我怎样才能做到这一点?

考虑到@(varargin)builtin('zeros',varargin{:}),但是由于字符串比较,这可能会减慢操作速度。

此外,我注意到可以将diag称为@numel\diag,但这似乎不适用于其他内置函数(尤其是zeros)。

最佳答案

好的,这不能给您确切的答案,但是可以解决问题:

我认为这似乎是一个很好的解决方案:

matlabcentral: How to call a shadowed function

上一篇文章:

刚偶然发现此问题,并找到以下解决方案:
例如,我有libsvm工具箱遮盖的matlab svmtrain:



哪个svmtrain -all

C:\ Projects \ Ichilov \ Misc \ MVPA \ libsvm-mat-3.0-1 \ svmtrain.mexw64

C:\ Program Files \ MATLAB \ R2009b \ toolbox \ bioinfo \ biolearning \ svmtrain.m
阴影百分比



但是我可以使用str2func访问原始功能:



org_svmtrain = str2func([matlabroot'\ toolbox \ bioinfo \ biolearning \ svmtrain'])



然后只需调用:



org_svmtrain(培训,组名)

10-02 22:21