📄 extr.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 + -