我想有一个标准偏差的std.m文件。它是在数据有趣的工具箱,但是,错误地,我改变了代码和std
命令不再工作。如何执行原std
(标准差)命令?
去掉所有注释,函数std.m
实际上非常简单:
function y = std(varargin)
y = sqrt(var(varargin{:}));
这是standard deviation
的定义:Variance
的平方根。
- 设置内置函数为Read-Only
现在不要破坏var.m
文件,因为它更复杂,我想知道在这里显示列表是否会有版权问题。
为了避免破坏内置文件的问题,建议将所有Matlab工具箱文件设置为只读。我记得旧的Matlab安装程序在安装时提供了这样做的选项。我不知道安装程序是否仍然提供该选项,但如果没有,手动操作非常容易(在Windows上,只需选择文件夹,右键单击Properties
,勾选只读并接受将属性传播到所有子文件夹和文件)。
- 重载
一旦这样做了,你的内置文件是安全的。您仍然可以通过重载来修改内置函数的默认行为。这包括编写一个具有相同名称的函数,并将其安排在默认函数之前调用(您的重载函数成为默认函数)。
这篇文章解释了如何重载用户函数。
Matlab不建议直接重载内置函数(而是叫它另一个名字,比如mySTD.m
),但如果你坚持它是完全可行的,仍然是一个比修改内置函数更好的选择…至少原来的功能还是完整的