Matlab 重写内置功能-标准偏差

Matlab 重写内置功能-标准偏差,matlab,standard-deviation,Matlab,Standard Deviation,我想要一个标准偏差的std.m文件。它在data fun工具箱中,但是,由于错误,我更改了代码,std命令不再工作。如何运行原始的std(标准偏差)命令?去掉所有注释,函数std.m实际上非常简单: function y = std(varargin) y = sqrt(var(varargin{:})); 这是标准偏差的定义:方差的平方根 将内置函数设置为只读 现在不要破坏var.m文件,因为它更复杂,我想知道在这里显示列表是否会有版权问题 为了避免破坏内置文件的问题,建议将所

我想要一个标准偏差的std.m文件。它在data fun工具箱中,但是,由于错误,我更改了代码,
std
命令不再工作。如何运行原始的
std
(标准偏差)命令?

去掉所有注释,函数
std.m
实际上非常简单:

function y = std(varargin)
    y = sqrt(var(varargin{:}));
这是标准偏差的定义:
方差的平方根


  • 将内置函数设置为只读
现在不要破坏
var.m
文件,因为它更复杂,我想知道在这里显示列表是否会有版权问题

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


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

这将解释如何重载用户函数


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

函数y=std(varargin);y=sqrt(var(varargin{:}))这是
std.m
函数的内容。修复它,然后立即将所有Matlab内置文件设置为只读Hey Hoki,谢谢您的帮助。当然,我会将生成的内嵌更改为只读:D@Hoki发帖作为回答?