📄 tezheng.m
字号:
function y=tezheng(x)
%Corrall为加权平均相似程度;Mianji为面积比值特征;含四个参数;Slopeofx为波形的斜率(不返回);Slope 为斜率特征包含:最大与最小斜率的差,左半部分大于0的个数,右半部分小于零的个数
%%
ZCBXstandard=[19,19,19,21,31,49,70,85,94,98,99,99,99,99,98,98,98,98,98,98,98,97,91,74,53,36,26,22,20,20,21,21;19,21,31,49,70,85,94,98,99,99,99,99,98,98,98,98,98,98,98,97,91,74,53,36,26,22,20,20,19,19,18,18;18,18,18,19,19,19,21,31,49,70,85,94,98,99,99,99,99,98,98,98,98,98,98,98,97,91,74,53,36,26,22,20;];
lengthofx=size(x);
rowlengthofx=lengthofx(1);
y1=zeros(1,rowlengthofx);
y2=zeros(1,rowlengthofx);
y3=zeros(1,rowlengthofx);
CorrAll=zeros(1,rowlengthofx);
Mianji=zeros(4,rowlengthofx);
Slope=zeros(3,rowlengthofx);
Slopeofx=zeros(1,rowlengthofx);
ZCBXstandard1 = 0.5*sum(ZCBXstandard(1,1:10).*ZCBXstandard(1,1:10))+0.5*sum(ZCBXstandard(1,22:32).*ZCBXstandard(1,22:32))+sum(ZCBXstandard(1,11:21).*ZCBXstandard(1,11:21));%加权后的结果,两边1-10;22-32加权为0.5
ZCBXstandard2 = 0.5*sum(ZCBXstandard(2,1:10).*ZCBXstandard(2,1:10))+0.5*sum(ZCBXstandard(2,22:32).*ZCBXstandard(2,22:32))+sum(ZCBXstandard(2,11:21).*ZCBXstandard(2,11:21));%加权后的结果,两边1-10;22-32加权为0.5
ZCBXstandard3 = 0.5*sum(ZCBXstandard(3,1:10).*ZCBXstandard(3,1:10))+0.5*sum(ZCBXstandard(3,22:32).*ZCBXstandard(3,22:32))+sum(ZCBXstandard(3,11:21).*ZCBXstandard(3,11:21));%加权后的结果,两边1-10;22-32加权为0.5
for i=1:rowlengthofx
y1(i) = (0.5*sum(x(i,1:10).*ZCBXstandard(1,1:10))+0.5*sum(x(i,22:32).*ZCBXstandard(1,22:32))+sum(x(i,11:21).*ZCBXstandard(1,11:21)))/ZCBXstandard1;
end
for i=1:rowlengthofx
y2(i) = (0.5*sum(x(i,1:10).*ZCBXstandard(2,1:10))+0.5*sum(x(i,22:32).*ZCBXstandard(2,22:32))+sum(x(i,11:21).*ZCBXstandard(2,11:21)))/ZCBXstandard2;
end
for i=1:rowlengthofx
y3(i) = (0.5*sum(x(i,1:10).*ZCBXstandard(3,1:10))+0.5*sum(x(i,22:32).*ZCBXstandard(3,22:32))+sum(x(i,11:21).*ZCBXstandard(3,11:21)))/ZCBXstandard3;
end
for i=1:rowlengthofx
CorrAll(i) = (y1(i)+y2(i)+y3(i))/3;
end
% meanofy1=mean(y1);
% minofy1=min(y1);
% maxofy1=max(y1);
%
% meanofy2=mean(y2);
% minofy2=min(y2);
% maxofy2=max(y2);
%
% meanofy3=mean(y3);
% minofy3=min(y3);
% maxofy3=max(y3);
%
% meanofall=(meanofy1+meanofy2+meanofy3)/3;
% minofall=(minofy1+minofy2+minofy3)/3;
% maxofall=(maxofy1+maxofy2+maxofy3)/3;
%%
for i=1:rowlengthofx
Mianji(1,i)=sum(x(i,1:5))/sum(x(i,14:18));%左与中面积之比 5点
Mianji(2,i)=sum(x(i,1:5))/sum(x(i,28:32));%左与右面积之比 5点
Mianji(3,i)=sum(x(i,14:18))/sum(x(i,28:32));%中与右面积之比 5点
Mianji(4,i)=sum(x(i,1:16))/sum(x(i,17:32));%左右面积之比 15点
end
%%
for i=1:rowlengthofx
for j=2:32
Slopeofx(i,j)=x(i,j)-x(i,j-1);
end
end
for i=1:rowlengthofx
Slope(1,i)=max(Slopeofx(i,:))-min(Slopeofx(i,:));%斜率的峰峰值
end
for i=1:rowlengthofx
Slope(2,i)=length(find(Slopeofx(i,1:15)>0));%斜率左半侧大于零的部分
end
for i=1:rowlengthofx
Slope(3,i)=length(find(Slopeofx(i,16:32)<0));%斜率右半侧小于零的部分
end
%%
LengthofmaxAndmaxSlopeofx=zeros(1,rowlengthofx);
for i=1:rowlengthofx
for j=2:32
Slopeofx(i,j)=x(i,j)-x(i,j-1);
end
end
for i=1:rowlengthofx
Slopeofxi=Slopeofx(i,:);
maxofSlopeofx=find(Slopeofxi==max(Slopeofxi));
minofSlopeofx=find(Slopeofxi==min(Slopeofxi));
LengthofmaxAndmaxSlopeofx(i)=abs(minofSlopeofx(1)-maxofSlopeofx(1));
end
%%
y=[CorrAll;Mianji;Slope;LengthofmaxAndmaxSlopeofx];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -