请问这段代码作用是什么?输入和输出的para1和para2是什么意思?怎么调用输入接口得到输出?

请问这段代码作用是什么?输入和输出的para1和para2是什么意思?怎么调用输入接口得到输出?

问题描述:


function [X,para1,para2]=pretreat(X,method,para1,para2)
%   data pretreatment
if nargin==2
  [Mx,Nx]=size(X);
   if strcmp(method,'autoscaling')
    para1=mean(X);para2=std(X);
   elseif strcmp(method,'center')
    para1=mean(X);para2=ones(1,Nx);
   elseif strcmp(method,'minmax')
    para1=min(X);maxv=max(X);para2=maxv-para1;  
   elseif strcmp(method,'pareto');
    para1=mean(X);para2=sqrt(std(X));
   elseif strcmp(method,'none');
    para1=zeros(1,Nx);para2=ones(1,Nx);
   else
    display('Wrong data pretreat method!');
   end
   
   for i=1:Nx
     X(:,i)=(X(:,i)-para1(i))/para2(i);
   end
   
elseif nargin==4
   [Mx,Nx]=size(X);
   for i=1:Nx     
     X(:,i)=(X(:,i)-para1(i))/para2(i);
   end
end

大概是这个意思

 
function [X,para1,para2]=pretreat(X,method,para1,para2)
%   data pretreatment 数据预处理
if nargin==2 % 假如输入参数只有两个即 Xmethod
  [Mx,Nx]=size(X); % 把X矩阵大小求出来
   if strcmp(method,'autoscaling')  % 如果处理方法是'autoscaling',自动标准化
    para1=mean(X);para2=std(X); % 求出X的均值para1和标准差para2
   elseif strcmp(method,'center') % 如果是中心标准化
    para1=mean(X);para2=ones(1,Nx); % 那么求出X的均值para1和1×Nx的大小的1值para2
   elseif strcmp(method,'minmax') % 如果是minmax标准化方法
    para1=min(X);maxv=max(X);para2=maxv-para1;  % 求出最小值para1最大值maxv和极差para2
   elseif strcmp(method,'pareto'); % 如果是pareto标准化方法
    para1=mean(X);para2=sqrt(std(X)); % 求出均值para1和标准差的开方para2
   elseif strcmp(method,'none'); % 如果method设为‘none’,则按照【0,1】标准化方法
    para1=zeros(1,Nx);para2=ones(1,Nx); 
   else
    disp('Wrong data pretreat method!'); % 否则输入错误
   end
   for i=1:Nx
     X(:,i)=(X(:,i)-para1(i))/para2(i); % 标准化后的X数据
   end
elseif nargin==4
   [Mx,Nx]=size(X);% 如果是输入参数数目等于4个,那么按照输入的para1,para2参数进行标准化处理
   for i=1:Nx     
     X(:,i)=(X(:,i)-para1(i))/para2(i);% 标准化后的X数据
   end
end

基本都给你注释了