center.m

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

M
64
字号
%#										
%#  function [cdata,me]=center(data,opt);			
%#										
%#  AIM: 	Centering along columns, rows or double centering		
%#										
%#  PRINCIPLE:  Removal of the column-, row- or overall mean from 		
%#              each column, row or both, respectively 		 		
%# 				 If a test data set is available it can ONLY be 
%#              column centered using the mean from the calibration
%#              data set.
%#
%#
%#  INPUT:	data: (m x n) matrix with m rows and n variables		
%#				opt: optional							
%#		     1 = column centering					
%#		     2 = row centering						
%#		     3 = double centering					
%#					
%#			 							
%#  OUTPUT:	cdata: (m x n) matrix containing centered data			
%#				me: mean vector, overall mean (scalar)				
%#	
%#										
%#  AUTHOR: 	Andrea Candolfi				 			
%#	    			Copyright(c) 1997 for ChemoAc					
%#          	FABI, Vrije Universiteit Brussel            			
%#          	Laarbeeklaan 103 1090 Jette					
%#   										
%# VERSION: 1.2 (25/02/2002)							
%#										
%#  TEST:   	I. Stanimirova	& S. Gourv閚ec & M. Zhang
%#										
	
function [cdata,me]=center(data,opt);

[m,n]=size(data);

if nargin==1;
  opt=[4];
  while opt>3 | opt<=0 
    opt=input('column centering(1), row centering(2), double centering(3):');
  end
end


if opt==1			% column centering 
   me=mean(data);
   cdata=data-ones(m,1)*me;
end

if opt==2			% row centering
   me=mean(data')';
   cdata=data-me*ones(1,n);
end

if opt==3 	% double centering
   me=mean(mean(data));
   mej=mean(data');
   mei=mean(data);
   cdata=data-(ones(m,1)*mei)-(ones(n,1)*mej)'+(ones(m,n)*me);
end

end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?