阅读程序function [ax,mx,stdx] = auto(x) %AUTO Autoscales matrix to mean zero unit variance % Autoscales a matrix (x) and returns the resulting matrix (ax) % with mean-zero unit variance columns, a vector of means (mx) % and a vector of standard deviations (stdx) used in the scaling. % %I/O: [ax,mx,stdx] = auto(x); % %See also: MDAUTO, MDMNCN, MDRESCAL, MDSCALE, MNCN, SCALE, RESCALE %Copyright Eigenvector Research, Inc. 1991-98 %Modified 11/93 %Checked on MATLAB 5 by BMW 1/4/97 [m,~] = size(x); mx = mean(x); stdx = std(x); ax = (x-mx(ones(m,1),:))./stdx(ones(m,1),:);
时间: 2024-04-18 14:23:57 浏览: 165
阅读读书类的小程序源码或DEMO
这是一个名为 `auto` 的函数,用于对输入的矩阵进行自动缩放,使得每一列的均值为零,方差为一。该函数返回缩放后的矩阵 `ax`,以及用于缩放的均值向量 `mx` 和标准差向量 `stdx`。
函数的输入参数为一个矩阵 `x`,输出参数为缩放后的矩阵 `ax`、均值向量 `mx` 和标准差向量 `stdx`。
具体实现过程如下:
1. 获取矩阵 `x` 的行数和列数,分别存储在变量 `m` 中。
2. 计算矩阵 `x` 的每一列的均值,存储在向量 `mx` 中。
3. 计算矩阵 `x` 的每一列的标准差,存储在向量 `stdx` 中。
4. 使用广播运算,对矩阵 `x` 进行缩放,使得每一列的均值为零,方差为一。具体操作是将矩阵 `x` 减去均值向量 `mx` 的广播结果,再除以标准差向量 `stdx` 的广播结果。将结果存储在矩阵 `ax` 中。
5. 返回缩放后的矩阵 `ax`、均值向量 `mx` 和标准差向量 `stdx`。
该函数的实现是基于 Eigenvector Research, Inc. 公司的版权代码,并在 1993 年进行了修改。在 1997 年由 BMW 在 MATLAB 5 上进行了验证。
阅读全文