覆盖内置功能 - 标准偏差

时间:2015-08-05 12:42:54

标签: matlab standard-deviation

我想要一个标准偏差的std.m文件。它在数据有趣的工具箱中,但是,错误地,我更改了代码并且std命令不再起作用。如何运行原始std(标准偏差)命令?

1 个答案:

答案 0 :(得分:6)

取出所有评论后,函数std.m实际上非常简单:

function y = std(varargin)
    y = sqrt(var(varargin{:}));

这是standard deviation的定义:Variance的平方根。

  • 将内置函数设置为只读

现在不要打破var.m文件,因为它更复杂,我想知道这里是否会出现版权问题。

为避免破坏内置文件的问题,建议将所有Matlab工具箱文件设置为 只读 。我记得旧的Matlab安装程序提供了在安装时执行此操作的选项。我不知道安装程序是否仍然提供该选项,但如果不是,则手动执行它非常容易(在 Windows 上,只需选择文件夹,右键单击Properties,勾选只读并接受将该属性传播到所有子文件夹和文件。)

  • 重载

完成后,您的内置文件是安全的。您仍然可以通过重载来修改内置函数的默认行为。这包括编写一个具有相同名称的函数,并安排在默认函数之前调用它(您的重载函数成为默认函数)。

这个article解释了如何重载用户函数。

Matlab不建议直接重载内置函数(例如将其称为mySTD.m之类的另一个名称),但如果你坚持认为它完全可行并且仍然比修改更好的选择内置函数... 至少原始函数在某处仍然完好