我想要一个标准偏差的std.m文件。它在数据有趣的工具箱中,但是,错误地,我更改了代码并且std
命令不再起作用。如何运行原始std
(标准偏差)命令?
答案 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
之类的另一个名称),但如果你坚持认为它完全可行并且仍然比修改更好的选择内置函数... 至少原始函数在某处仍然完好。