��976 2021-08-27 19:12 采纳率: 86.7%
浏览 64
已结题

请问这段代码作用是什么?输入和输出的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
  • 写回答

1条回答 默认 最新

  • joel_1993 2021-08-27 21:22
    关注

    大概是这个意思

     
    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
    

    基本都给你注释了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月5日
  • 已采纳回答 8月28日
  • 创建了问题 8月27日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?