www.gusucode.com > 《模式识别与智能计算》matlab源代码 > 《模式识别与智能计算》matlab源代码/《模式识别与智能计算》部分函数的源程序/书程序/第12章/radar.m
function [f s l g]=radar(x,k) figure circle(0,0,2); set(gca,'ytick',[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2]),set(gca,'yticklabel','-2|1.5|-1|-0.5|0|0.5|1|1.5|2|'); set(gca,'xtick',[-2 -1.5 -1 -0.5 0 0.5 1 1.5 2]);set(gca,'xticklabel','-2|1.5|-1|-0.5|0|0.5|1|1.5|2|'); hold on xx=[0 2];yy=[0 0];line(xx,yy); switch k case 1 [r,c]=size(x);a=ones(r,c);b=ones(r,c); x1=guiyi(x); y1=2*atan(x1)/pi+1; for i=1:c a1=2*cos(i*2*pi/c);b1=2*sin(i*2*pi/c); x2=[0 a1];y2=[0 b1];line(x2,y2); text(a1+0.1,b1,num2str(i)) end for i=1:r for j=1:c a(i,j)=y1(i,j)*cos(j*2*pi/c);b(i,j)=y1(i,j)*sin(j*2*pi/c); end end for i=1:r for j=1:c-1 x2=[a(i,j) a(i,j+1)];y2=[b(i,j),b(i,j+1)]; line(x2,y2); end x2=[a(i,1) a(i,c)];y2=[b(i,1),b(i,c)]; f=line(x2,y2); end for i=1:r for j=1:c-1 s(i,j)=y1(i,j)*y1(i,j+1)*sin(2*pi/c)/2; l(i,j)=sqrt((a(i,j)-a(i,j+1))^2+(b(i,j)-b(i,j+1))^2); end end s=sum(s');l=sum(l');g=[sum(a')/c;sum(b')/c]; case 2 [r,c]=size(x);a=ones(r-1,c);b=ones(r-1,c); x1=guiyi(x(1:r-1,1:c)); y1=2*atan(x1)/pi+1; ab=sum(x(r,:));a3=0; for i=1:c a3=a3+x(r,i)*2*pi/ab; theta(i)=a3; end for i=1:c a1=2*cos(theta(i));b1=2*sin(theta(i)); x2=[0 a1];y2=[0 b1];line(x2,y2); text(a1+0.1,b1,num2str(i)); end for i=1:r-1 for j=1:c a(i,j)=y1(i,j)*cos(theta(j));b(i,j)=y1(i,j)*sin(theta(j)); end end for i=1:r-1 for j=1:c-1 x2=[a(i,j) a(i,j+1)];y2=[b(i,j),b(i,j+1)]; line(x2,y2); end x2=[a(i,1) a(i,c)];y2=[b(i,1),b(i,c)]; f=line(x2,y2); end for i=1:r-1 for j=1:c-1 s(i,j)=y1(i,j)*y1(i,j+1)*sin(theta(i))/2; l(i,j)=sqrt((a(i,j)-a(i,j+1))^2+(b(i,j)-b(i,j+1))^2); end end s=sum(s(1:r-1,:)');l=sum(l(1:r-1,:)');g=[sum(a(1:r-1,:)')/c;sum(b(1:r-1,:)')/c]; end