📄 scale.m
字号:
%#
%# function [sdata,me,standev,snewdata] = scale(data,scaltype,newdata)
%#
%# AIM: Performs scaling to unit variance or autoscaling
%# (centering + scaling to unit variance)
%#
%# PRINCIPLE: Each column in the matrix of training data is divided by its standard
%# deviation. For autoscaling, the columns are previously centered.
%# Optionally, it is also possible to scale a new data set (test set),
%# using the parameters determined on the training set.
%#
%# INPUT: data (m*n) : training set
%# scaltype : type of scaling (0 : variance scaling, 1 : autoscaling)
%# newdata (mt*n) : test set (optional)
%#
%# OUTPUT: sdata (m*n) : scaled training set
%# me (1*n) : vector of means from the training set (empty if only
%# variance scaling is performed)
%# standev (1*n) : vector of standard deviations from the training set
%# snewdata (mt*n) : scaled test set (optional)
%#
%# AUTHOR: Frederic Despagne
%# Copyright(c) 1997 for ChemoAC
%# Dienst FABI, Vrije Universiteit Brussel
%# Laarbeeklaan 103, 1090 Jette
%#
%# VERSION: 1.1 (28/02/1998)
%#
%# TEST: Andrea Candolfi, Menghui Zhang (2002)
%#
function [sdata,me,standev,snewdata] = scale(data,scaltype,newdata);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SCALING OF TRAINING SET %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[m,n] = size(data);
standev = std(data); % Vector of standard deviations
me = scaltype*mean(data); % Vector of means for autoscaling
sdata = (data-me(ones(m,1),:))./standev(ones(m,1),:); % Scaling
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SCALING OF TEST SET %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if nargin == 3
mt = size(newdata,1);
snewdata = (newdata-me(ones(mt,1),:))./standev(ones(mt,1),:); % Scaling
end
if scaltype == 0
me = [];
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -