⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extr.cpp

📁 vc代用matcom编程
💻 CPP
字号:
  #include "matlib.h"
  #pragma hdrstop
  
  #include "extr.h"
  
  
  Mm extr(Mm x, Mm t, i_o_t, Mm& indmin__o, Mm& indmax__o, Mm& indzer__o) {
    begin_scope
    x.setname("x"); t.setname("t"); 
    dMm(indmin); dMm(indmax); dMm(indzer); dMm(m); dMm(x1); dMm(x2); dMm(iz); dMm(indz); dMm(zer); dMm(dz); dMm(debz) \
      ; dMm(finz); dMm(d); dMm(n); dMm(d1); dMm(d2); dMm(imax); dMm(imin); dMm(bad); dMm(dd); dMm(debs); dMm(fins);  \
      dMm(lc); dMm(k); dMm(k_extr_v0); 
    
    #line 1 "d:/matcom45/samples/emd/extr.m"
    call_stack_begin;
    #line 1 "d:/matcom45/samples/emd/extr.m"
    // nargin, nargout entry code
    double old_nargin=nargin_val; if (!nargin_set) nargin_val=2.0;
    nargin_set=0;
    double old_nargout=nargout_val; if (!nargout_set) nargout_val=3.0;
    nargout_set=0;
    
    // translated code
    
    
    #line 3 "d:/matcom45/samples/emd/extr.m"
    // [indmin, indmax, indzer] = EXTR(x,t) finds extrema and zero-crossings
    #line 4 "d:/matcom45/samples/emd/extr.m"
    //
    #line 5 "d:/matcom45/samples/emd/extr.m"
    // inputs : - x : analyzed signal
    #line 6 "d:/matcom45/samples/emd/extr.m"
    //          - t (optional) : sampling times, default 1:length(x)
    #line 7 "d:/matcom45/samples/emd/extr.m"
    //
    #line 8 "d:/matcom45/samples/emd/extr.m"
    // outputs : - indmin = indices of minima
    #line 9 "d:/matcom45/samples/emd/extr.m"
    //           - indmax = indices of maxima
    #line 10 "d:/matcom45/samples/emd/extr.m"
    //           - indzer = indices of zero-crossings
    
    #line 12 "d:/matcom45/samples/emd/extr.m"
_   if (istrue(nargin()==1.0)) {
      #line 13 "d:/matcom45/samples/emd/extr.m"
_     t = colon(1.0,1.0,length(x));
      #line 14 "d:/matcom45/samples/emd/extr.m"
    }
    
    #line 16 "d:/matcom45/samples/emd/extr.m"
_   m = length(x);
    #line 17 "d:/matcom45/samples/emd/extr.m"
_   x1 = x(colon(1.0,1.0,m-1.0));
    #line 18 "d:/matcom45/samples/emd/extr.m"
_   x2 = x(colon(2.0,1.0,m));
    #line 19 "d:/matcom45/samples/emd/extr.m"
_   indzer = find(times(x1,x2)<0.0);
    
    #line 21 "d:/matcom45/samples/emd/extr.m"
_   if (istrue(any(x==0.0))) {
      #line 22 "d:/matcom45/samples/emd/extr.m"
_     iz = find(x==0.0);
      #line 23 "d:/matcom45/samples/emd/extr.m"
_     indz = nop_M;
      #line 24 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(any(diff(iz)==1.0))) {
        #line 25 "d:/matcom45/samples/emd/extr.m"
_       zer = x==0.0;
        #line 26 "d:/matcom45/samples/emd/extr.m"
_       dz = diff((BR(0.0),zer,0.0));
        #line 27 "d:/matcom45/samples/emd/extr.m"
_       debz = find(dz==1.0);
        #line 28 "d:/matcom45/samples/emd/extr.m"
_       finz = find(dz==-1.0)-1.0;
        #line 29 "d:/matcom45/samples/emd/extr.m"
_       indz = round((debz+finz)/2.0);
        #line 30 "d:/matcom45/samples/emd/extr.m"
      } else {
        
        #line 31 "d:/matcom45/samples/emd/extr.m"
_       indz = iz;
        #line 32 "d:/matcom45/samples/emd/extr.m"
      }
      #line 33 "d:/matcom45/samples/emd/extr.m"
_     indzer = sort((BR(indzer),indz));
      #line 34 "d:/matcom45/samples/emd/extr.m"
    }
    
    #line 36 "d:/matcom45/samples/emd/extr.m"
_   d = diff(x);
    
    #line 38 "d:/matcom45/samples/emd/extr.m"
_   n = length(d);
    #line 39 "d:/matcom45/samples/emd/extr.m"
_   d1 = d(colon(1.0,1.0,n-1.0));
    #line 40 "d:/matcom45/samples/emd/extr.m"
_   d2 = d(colon(2.0,1.0,n));
    #line 41 "d:/matcom45/samples/emd/extr.m"
_   indmin = find(times(d1,d2)<0.0&&d1<0.0)+1.0;
    #line 42 "d:/matcom45/samples/emd/extr.m"
_   indmax = find(times(d1,d2)<0.0&&d1>0.0)+1.0;
    
    #line 44 "d:/matcom45/samples/emd/extr.m"
_   if (istrue(any(d==0.0))) {
      
      #line 46 "d:/matcom45/samples/emd/extr.m"
_     imax = nop_M;
      #line 47 "d:/matcom45/samples/emd/extr.m"
_     imin = nop_M;
      
      #line 49 "d:/matcom45/samples/emd/extr.m"
_     bad = (d==0.0);
      #line 50 "d:/matcom45/samples/emd/extr.m"
_     dd = diff((BR(0.0),bad,0.0));
      #line 51 "d:/matcom45/samples/emd/extr.m"
_     debs = find(dd==1.0);
      #line 52 "d:/matcom45/samples/emd/extr.m"
_     fins = find(dd==-1.0);
      #line 53 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(debs(1.0)==1.0)) {
        #line 54 "d:/matcom45/samples/emd/extr.m"
_       if (istrue(length(debs)>1.0)) {
          #line 55 "d:/matcom45/samples/emd/extr.m"
_         debs = debs(colon(2.0,1.0,debs.size()));
          #line 56 "d:/matcom45/samples/emd/extr.m"
_         fins = fins(colon(2.0,1.0,fins.size()));
          #line 57 "d:/matcom45/samples/emd/extr.m"
        } else {
          
          #line 58 "d:/matcom45/samples/emd/extr.m"
_         debs = nop_M;
          #line 59 "d:/matcom45/samples/emd/extr.m"
_         fins = nop_M;
          #line 60 "d:/matcom45/samples/emd/extr.m"
        }
        #line 61 "d:/matcom45/samples/emd/extr.m"
      }
      #line 62 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(length(debs)>0.0)) {
        #line 63 "d:/matcom45/samples/emd/extr.m"
_       if (istrue(fins(fins.size())==m)) {
          #line 64 "d:/matcom45/samples/emd/extr.m"
_         if (istrue(length(debs)>1.0)) {
            #line 65 "d:/matcom45/samples/emd/extr.m"
_           debs = debs(colon(1.0,1.0,(debs.size()-1.0)));
            #line 66 "d:/matcom45/samples/emd/extr.m"
_           fins = fins(colon(1.0,1.0,(fins.size()-1.0)));
            
            #line 68 "d:/matcom45/samples/emd/extr.m"
          } else {
            
            #line 69 "d:/matcom45/samples/emd/extr.m"
_           debs = nop_M;
            #line 70 "d:/matcom45/samples/emd/extr.m"
_           fins = nop_M;
            #line 71 "d:/matcom45/samples/emd/extr.m"
          }
          #line 72 "d:/matcom45/samples/emd/extr.m"
        }
        #line 73 "d:/matcom45/samples/emd/extr.m"
      }
      #line 74 "d:/matcom45/samples/emd/extr.m"
_     lc = length(debs);
      #line 75 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(lc>0.0)) {
        #line 76 "d:/matcom45/samples/emd/extr.m"
_       k_extr_v0 = colon(1.0,1.0,lc); int k_extr_i0;
        for (k_extr_i0=0;k_extr_i0<k_extr_v0.cols();k_extr_i0++) {
          forelem(k,k_extr_v0,k_extr_i0);
          #line 77 "d:/matcom45/samples/emd/extr.m"
_         if (istrue(d(debs(k)-1.0)>0.0)) {
            #line 78 "d:/matcom45/samples/emd/extr.m"
_           if (istrue(d(fins(k))<0.0)) {
              #line 79 "d:/matcom45/samples/emd/extr.m"
_             imax = (BR(imax),round((fins(k)+debs(k))/2.0));
              #line 80 "d:/matcom45/samples/emd/extr.m"
            }
            #line 81 "d:/matcom45/samples/emd/extr.m"
          } else {
            
            #line 82 "d:/matcom45/samples/emd/extr.m"
_           if (istrue(d(fins(k))>0.0)) {
              #line 83 "d:/matcom45/samples/emd/extr.m"
_             imin = (BR(imin),round((fins(k)+debs(k))/2.0));
              #line 84 "d:/matcom45/samples/emd/extr.m"
            }
            #line 85 "d:/matcom45/samples/emd/extr.m"
          }
          #line 86 "d:/matcom45/samples/emd/extr.m"
        }
        #line 87 "d:/matcom45/samples/emd/extr.m"
      }
      
      #line 89 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(length(imax)>0.0)) {
        #line 90 "d:/matcom45/samples/emd/extr.m"
_       indmax = sort((BR(indmax),imax));
        #line 91 "d:/matcom45/samples/emd/extr.m"
      }
      
      #line 93 "d:/matcom45/samples/emd/extr.m"
_     if (istrue(length(imin)>0.0)) {
        #line 94 "d:/matcom45/samples/emd/extr.m"
_       indmin = sort((BR(indmin),imin));
        #line 95 "d:/matcom45/samples/emd/extr.m"
      }
      
      #line 97 "d:/matcom45/samples/emd/extr.m"
    }
    
    call_stack_end;
    
    // nargin, nargout exit code
    nargin_val=old_nargin; nargout_val=old_nargout;
    
    // function exit code
    x.setname(NULL); t.setname(NULL); 
    indmin__o=indmin; indmax__o=indmax; indzer__o=indzer; 
    return x_M;
    end_scope
  }
  
  
  Mm extr() {
    begin_scope
    double old_nargin=nargin_val; nargin_val=0.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=1.0; nargout_set=1;
    dMm(x); dMm(t); dMm(indmin__o); dMm(indmax__o); dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return(indmin__o);
    end_scope
  }
  
  Mm extr(Mm x) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=1.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=1.0; nargout_set=1;
    dMm(t); dMm(indmin__o); dMm(indmax__o); dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return(indmin__o);
    end_scope
  }
  
  Mm extr(Mm x, Mm t) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=2.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=1.0; nargout_set=1;
    dMm(indmin__o); dMm(indmax__o); dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return(indmin__o);
    end_scope
  }
  
  Mm extr(i_o_t, Mm& indmin__o, Mm& indmax__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=0.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=2.0; nargout_set=1;
    dMm(x); dMm(t); dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  
  Mm extr(Mm x, i_o_t, Mm& indmin__o, Mm& indmax__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=1.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=2.0; nargout_set=1;
    dMm(t); dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  
  Mm extr(Mm x, Mm t, i_o_t, Mm& indmin__o, Mm& indmax__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=2.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=2.0; nargout_set=1;
    dMm(indzer__o); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  
  Mm extr(i_o_t, Mm& indmin__o, Mm& indmax__o, Mm& indzer__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=0.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=3.0; nargout_set=1;
    dMm(x); dMm(t); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  
  Mm extr(Mm x, i_o_t, Mm& indmin__o, Mm& indmax__o, Mm& indzer__o) {
    begin_scope
    double old_nargin=nargin_val; nargin_val=1.0; nargin_set=1;
    double old_nargout=nargout_val; nargout_val=3.0; nargout_set=1;
    dMm(t); 
    extr(x, t, i_o, indmin__o, indmax__o, indzer__o);
    nargout_val=old_nargout;
    nargin_val=old_nargin;
    return x_M;
    end_scope
  }
  

⌨️ 快捷键说明

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