scale.m

来自「基于matlab编写的蚁群-偏最小二乘算法(AOC_PLS),该算法实现含变量多」· M 代码 · 共 58 行

M
58
字号
%#											
%# 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 + =
减小字号Ctrl + -
显示快捷键?