小妹作毕业设计要用的,但实在是看不懂,还请高手指点,万分感谢xx=load('e:\f_xj\by\safety\code\nn\uf.txt');
x=xx(:,1);
y=xx(:,2);
for i=1:45
t=y(i);
y(i)=y(92-i);
y(92-i)=t;
end
y(91)=y(1);
tsxmax = max(x);
tsxmin = min(x);
tsymax = max(y);
tsymin = min(y);
for i=1:91
xc(i)=(x(i)-tsxmin)/(tsxmax-tsxmin);
yc(i)=(y(i)-tsymin)/(tsymax-tsymin);
end
xcmax = max(xc);
xcmin = min(xc);
ycmax = max(yc);
ycmin = min(yc);
m00=0;
for i=1:90
m00=m00+yc(i)*(xc(i+1)-xc(i));
end
m10=0;
for i=1:90
m10=m10+xc(i)*yc(i)*(xc(i+1)-xc(i));
end
m01=0;
for i=1:90
m01=m01-xc(i)*yc(i)*(yc(i+1)-yc(i));
b(i)=xc(i)*yc(i)*(yc(i+1)-yc(i));
end
xx=m10/m00;
yx=m01/m00;
u20=0;
for i=1:90
u20=u20+(xc(i)-xx)^2*yc(i)*(xc(i+1)-xc(i));
end
u02=0;
for i=1:90
u02=u02-(yc(i)-yx)^2*xc(i)*(yc(i+1)-yc(i));
end
for i=2:91
if(xc(i)>=xx&&xc(i-1)<xx)
uxi=i;
end
if(xc(i)<=xx&&xc(i-1)>xx)
dxi=i;
end
end
for i=2:91
if(yc(i)>=yx&&yc(i-1)<yx)
lyi=i;
end
if(yc(i)<=yx&&yc(i-1)>yx)
ryi=i;
end
end
p=[lyi uxi ryi dxi lyi uxi ryi dxi lyi];
for i=1:9
if(p(i)==91)
p(i)=1;
end
end
miu=[0 0 0 0 0 0 0 0];
for i=1:4
if(p(i)>p(i+1))
for j=p(i):90
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
for j=1:p(i+1)
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
end
if(p(i)<p(i+1))
for j=p(i):p(i+1)
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
end
end
for i=5:8
if(p(i)>p(i+1))
for j=p(i):90
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
for j=1:p(i+1)
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
end
if(p(i)<p(i+1))
for j=p(i):p(i+1)
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
end
end
feature=[u20 u02 miu(1) miu(2) miu(3) miu(4) miu(5) miu(6) miu(7) miu(8)]%jutezheng
%network
p = [-1 -1 2 2;0 5 0 5];
t = [-1 -1 1 1];
net=newff(minmax(feature),[12,14],{'tansig','purelin'},'traingd');
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 300;
net.trainParam.goal = 1e-5;
[net,tr]=train(net,p,t);
a = sim(net,p);
x=xx(:,1);
y=xx(:,2);
for i=1:45
t=y(i);
y(i)=y(92-i);
y(92-i)=t;
end
y(91)=y(1);
tsxmax = max(x);
tsxmin = min(x);
tsymax = max(y);
tsymin = min(y);
for i=1:91
xc(i)=(x(i)-tsxmin)/(tsxmax-tsxmin);
yc(i)=(y(i)-tsymin)/(tsymax-tsymin);
end
xcmax = max(xc);
xcmin = min(xc);
ycmax = max(yc);
ycmin = min(yc);
m00=0;
for i=1:90
m00=m00+yc(i)*(xc(i+1)-xc(i));
end
m10=0;
for i=1:90
m10=m10+xc(i)*yc(i)*(xc(i+1)-xc(i));
end
m01=0;
for i=1:90
m01=m01-xc(i)*yc(i)*(yc(i+1)-yc(i));
b(i)=xc(i)*yc(i)*(yc(i+1)-yc(i));
end
xx=m10/m00;
yx=m01/m00;
u20=0;
for i=1:90
u20=u20+(xc(i)-xx)^2*yc(i)*(xc(i+1)-xc(i));
end
u02=0;
for i=1:90
u02=u02-(yc(i)-yx)^2*xc(i)*(yc(i+1)-yc(i));
end
for i=2:91
if(xc(i)>=xx&&xc(i-1)<xx)
uxi=i;
end
if(xc(i)<=xx&&xc(i-1)>xx)
dxi=i;
end
end
for i=2:91
if(yc(i)>=yx&&yc(i-1)<yx)
lyi=i;
end
if(yc(i)<=yx&&yc(i-1)>yx)
ryi=i;
end
end
p=[lyi uxi ryi dxi lyi uxi ryi dxi lyi];
for i=1:9
if(p(i)==91)
p(i)=1;
end
end
miu=[0 0 0 0 0 0 0 0];
for i=1:4
if(p(i)>p(i+1))
for j=p(i):90
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
for j=1:p(i+1)
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
end
if(p(i)<p(i+1))
for j=p(i):p(i+1)
miu(i)=miu(i)+(xc(j)-xx)^2*(yc(j)-yx)*(xc(j+1)-xc(j));
end
end
end
for i=5:8
if(p(i)>p(i+1))
for j=p(i):90
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
for j=1:p(i+1)
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
end
if(p(i)<p(i+1))
for j=p(i):p(i+1)
miu(i)=miu(i)+abs((yc(j)-yx)^2*(xc(j)-xx)*(yc(j+1)-yc(j)));
end
end
end
feature=[u20 u02 miu(1) miu(2) miu(3) miu(4) miu(5) miu(6) miu(7) miu(8)]%jutezheng
%network
p = [-1 -1 2 2;0 5 0 5];
t = [-1 -1 1 1];
net=newff(minmax(feature),[12,14],{'tansig','purelin'},'traingd');
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 300;
net.trainParam.goal = 1e-5;
[net,tr]=train(net,p,t);
a = sim(net,p);
