温州喜来登酒店地址:Floyd最短路算法的MATLAB程序

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 18:39:37

               Floyd最短路算法的MATLAB程序

              %floyd.m

              %采用floyd算法计算图a中每对顶点最短路

              %d是矩离矩阵

              %r是路由矩阵

              function [d,r]=floyd(a)

              n=size(a,1);

              d=a;

              for i=1:n

                  for j=1:n

                      r(i,j)=j;

                  end 

              end 

              r

              for k=1:n

                  for i=1:n

                      for j=1:n

                          if d(i,k)+d(k,j)

                              d(i,j)=d(i,k)+d(k,j);

                              r(i,j)=r(i,k)

                          end 

                      end 

                  end

                  k

                  d

                  r

              end

数学算法(2

              实例2:三角函数曲线(2

              function shili02

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例02');

              x=-pi:0.05:pi;

              y=sin(x)+cos(x);

              plot(x,y,'-*r','linewidth',1);

              grid on

              xlabel('自变量X');

              ylabel('函数值Y');

              title('三角函数');

实例3:图形的叠加

              function shili03

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例03');

              x=-pi:0.05:pi;

              y1=sin(x);

              y2=cos(x);

              plot(x,y1,...

                  '-*r',...

                  x,y2,...

                  '--og');

              grid on

              xlabel('自变量X');

              ylabel('函数值Y');

              title('三角函数');

实例4:双y轴图形的绘制

              function shili04

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例04');

              x=0:900;a=1000;b=0.005;

              y1=2*x;

              y2=cos(b*x);

              [haxes,hline1,hline2]=plotyy(x,y1,x,y2,'semilogy','plot');

              axes(haxes(1))

              ylabel('semilog plot');

              axes(haxes(2))

              ylabel('linear plot');

实例6:图形标注

              function shili06

              h0=figure('toolbar','none',...

                  'position',[200 150 450 400],...

                  'name','实例06');

              t=0:pi/10:2*pi;

              h=plot(t,sin(t));

              xlabel('t=02\pi','fontsize',16);

              ylabel('sin(t)','fontsize',16);

              title('\it{从 0to2\pi 的正弦曲线}','fontsize',16)

              x=get(h,'xdata');

              y=get(h,'ydata');

              imin=find(min(y)==y);

              imax=find(max(y)==y);

              text(x(imin),y(imin),...

                  ['\leftarrow最小值=',num2str(y(imin))],...

                  'fontsize',16)

              text(x(imax),y(imax),...

                  ['\leftarrow最大值=',num2str(y(imax))],...

                  'fontsize',16)

实例7:条形图形

              function shili07

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例07');

              tiao1=[562 548 224 545 41 445 745 512];

              tiao2=[47 48 57 58 54 52 65 48];

              t=0:7;

              bar(t,tiao1)

              xlabel('X');

              ylabel('TIAO1');

              h1=gca;

              h2=axes('position',get(h1,'position'));

              plot(t,tiao2,'linewidth',3)

              set(h2,'yaxislocation','right','color','none','xticklabel',[])

实例8:区域图形

              function shili08

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例08');

              x=91:95;

              profits1=[88 75 84 93 77];

              profits2=[51 64 54 56 68];

              profits3=[42 54 34 25 24];

              profits4=[26 38 18 15 4];

              area(x,profits1,'facecolor',[0.5 0.9 0.6],...

                  'edgecolor','b',...

                  'linewidth',3)

              hold on

              area(x,profits2,'facecolor',[0.9 0.85 0.7],...

                  'edgecolor','y',...

                  'linewidth',3)

              hold on

              area(x,profits3,'facecolor',[0.3 0.6 0.7],...

                  'edgecolor','r',...

                  'linewidth',3)

              hold on

              area(x,profits4,'facecolor',[0.6 0.5 0.9],...

                  'edgecolor','m',...

                  'linewidth',3)

              hold off

              set(gca,'xtick',[91:95])

              set(gca,'layer','top')

              gtext('\leftarrow第一季度销量')

              gtext('\leftarrow第二季度销量')

              gtext('\leftarrow第三季度销量')

              gtext('\leftarrow第四季度销量')

              xlabel('','fontsize',16);

              ylabel('销售量','fontsize',16);

实例9:饼图的绘制

              function shili09

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例09');

              t=[54 21 35;

                  68 54 35;

                  45 25 12;

                  48 68 45;

                  68 54 69];

              x=sum(t);

              h=pie(x);

              textobjs=findobj(h,'type','text');

              str1=get(textobjs,{'string'});

              val1=get(textobjs,{'extent'});

              oldext=cat(1,val1{:});

              names={'商品一:';'商品二:';'商品三:'};

              str2=strcat(names,str1);

              set(textobjs,{'string'},str2)

              val2=get(textobjs,{'extent'});

              newext=cat(1,val2{:});

              offset=sign(oldext(:,1)).*(newext(:,3)-oldext(:,3))/2;

              pos=get(textobjs,{'position'});

              textpos=cat(1,pos{:});

              textpos(:,1)=textpos(:,1)+offset;

              set(textobjs,{'position'},num2cell(textpos,[3,2])

实例10:阶梯图

              function shili10

              h0=figure('toolbar','none',...

                  'position',[200 150 450 400],...

                  'name','实例10');

              a=0.01;

              b=0.5;

              t=0:10;

              f=exp(-a*t).*sin(b*t);

              stairs(t,f)

              hold on

              plot(t,f,':*')

              hold off

              glabel='函数e^{-(\alpha*t)}sin\beta*t的阶梯图';

              gtext(glabel,'fontsize',16)

              xlabel('t=0:10','fontsize',16)

              axis([0 10 -1.2 1.2])

实例11:枝干图

              function shili11

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例11');

              x=0:pi/20:2*pi;

              y1=sin(x);

              y2=cos(x);

              h1=stem(x,y1+y2);

              hold on

              h2=plot(x,y1,'^r',x,y2,'*g');

              hold off

              h3=[h1(1);h2];

              legend(h3,'y1+y2','y1=sin(x)','y2=cos(x)')

              xlabel('自变量X');

              ylabel('函数值Y');

              title('正弦函数与余弦函数的线性组合');

实例12:罗盘图

              function shili12

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例12');

              winddirection=[54 24 65 84 

                  256 12 235 62 

                  125 324 34 254];

              windpower=[2 5 5 3 

                  6 8 12 7 

                  6 14 10 8];

              rdirection=winddirection*pi/180;

              [x,y]=pol2cart(rdirection,windpower);

              compass(x,y);

              desc={'风向和风力',

                  '北京气象台',

                  '101000',

                  '1011200'};

              gtext(desc)

实例13:轮廓图

              function shili13

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例13');

              [th,r]=meshgrid((0:10:360)*pi/180,0:0.05:1);

              [x,y]=pol2cart(th,r);

              z=x+i*y;

              f=(z.^4-1).^(0.25);

              contour(x,y,abs(f),20)

              axis equal

              xlabel('实部','fontsize',16);

              ylabel('虚部','fontsize',16);

              h=polar([0 2*pi],[0 1]);

              delete(h)

              hold on

              contour(x,y,abs(f),20)

实例14:交互式图形

              function shili14

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例14');

              axis([0 10 0 10]);

              hold on

              x=[];

              y=[];

              n=0;

              disp('单击鼠标左键点取需要的点');

              disp('单击鼠标右键点取最后一个点');

              but=1;

              while but==1

                  [xi,yi,but]=ginput(1);

                  plot(xi,yi,'bo')

                  n=n+1;

                  disp('单击鼠标左键点取下一个点');

                  x(n,1)=xi;

                  y(n,1)=yi;

              end

              t=1:n;

              ts=1:0.1:n;

              xs=spline(t,x,ts);

              ys=spline(t,y,ts);

              plot(xs,ys,'r-');

              hold off

实例15:变换的傅立叶函数曲线

              function shili15

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例15');

              axis equal

              m=moviein(20,gcf);

              set(gca,'nextplot','replacechildren')

              h=uicontrol('style','slider','position',...

                  [100 10 500 20],'min',1,'max',20)

              for j=1:20

                  plot(fft(eye(j+16)))

                  set(h,'value',j)

                  m(:,j)=getframe(gcf);

              end

              clf;

              axes('position',[0 0 1 1]);

              movie(m,30)

实例16:劳伦兹非线形方程的无序活动

              function shili15

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例15');

              axis equal

              m=moviein(20,gcf);

              set(gca,'nextplot','replacechildren')

              h=uicontrol('style','slider','position',...

                  [100 10 500 20],'min',1,'max',20)

              for j=1:20

                  plot(fft(eye(j+16)))

                  set(h,'value',j)

                  m(:,j)=getframe(gcf);

              end

              clf;

              axes('position',[0 0 1 1]);

              movie(m,30)

实例17:填充图

              function shili17

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例17');

              t=(1:2:15)*pi/8;

              x=sin(t);

              y=cos(t);

              fill(x,y,'r')

              axis square off

              text(0,0,'STOP',...

                  'color',[1 1 1],...

                  'fontsize',50,...

                  'horizontalalignment','center')

实例18:条形图和阶梯形图

              function shili18

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例18');

              subplot(2,2,1)

              x=-3:0.2:3;

              y=exp(-x.*x);

              bar(x,y)

              title('2-D Bar Chart')

              subplot(2,2,2)

              x=-3:0.2:3;

              y=exp(-x.*x);

              bar3(x,y,'r')

              title('3-D Bar Chart')

              subplot(2,2,3)

              x=-3:0.2:3;

              y=exp(-x.*x);

              stairs(x,y)

              title('Stair Chart')

              subplot(2,2,4)

              x=-3:0.2:3;

              y=exp(-x.*x);

              barh(x,y)

              title('Horizontal Bar Chart')

实例19:三维曲线图

              function shili19

              h0=figure('toolbar','none',...

                  'position',[200 150 450 400],...

                  'name','实例19');

              subplot(2,1,1)

              x=linspace(0,2*pi);

              y1=sin(x);

              y2=cos(x);

              y3=sin(x)+cos(x);

              z1=zeros(size(x));

              z2=0.5*z1;

              z3=z1;

              plot3(x,y1,z1,x,y2,z2,x,y3,z3)

              grid on

              xlabel('X');

              ylabel('Y');

              zlabel('Z');

              title('Figure1:3-D Plot')

              subplot(2,1,2)

              x=linspace(0,2*pi);

              y1=sin(x);

              y2=cos(x);

              y3=sin(x)+cos(x);

              z1=zeros(size(x));

              z2=0.5*z1;

              z3=z1;

              plot3(x,z1,y1,x,z2,y2,x,z3,y3)

              grid on

              xlabel('X');

              ylabel('Y');

              zlabel('Z');

              title('Figure2:3-D Plot')

实例21PEAKS函数曲线

              function shili21

              h0=figure('toolbar','none',...

                  'position',[200 100 450 450],...

                  'name','实例21');

              [x,y,z]=peaks(30);

              subplot(2,1,1)

              x=x(1,:);

              y=y(:,1);

              i=find(y>0.8&y<1.2);

              j=find(x>-0.6&x<0.5);

              z(i,j)=nan*z(i,j);

              surfc(x,y,z)

              xlabel('X');

              ylabel('Y');

              zlabel('Z');

              title('Figure1:surfc函数形成的曲面')

              subplot(2,1,2)

              x=x(1,:);

              y=y(:,1);

              i=find(y>0.8&y<1.2);

              j=find(x>-0.6&x<0.5);

              z(i,j)=nan*z(i,j);

              surfl(x,y,z)

              xlabel('X');

              ylabel('Y');

              zlabel('Z');

              title('Figure2:surfl函数形成的曲面')

实例22:片状图

              function shili22

              h0=figure('toolbar','none',...

                  'position',[200 150 550 350],...

                  'name','实例22');

              subplot(1,2,1)

              x=rand(1,20);

              y=rand(1,20);

              z=peaks(x,y*pi);

              t=delaunay(x,y);

              trimesh(t,x,y,z)

              hidden off

              title('Figure1:Triangular Surface Plot');

              subplot(1,2,2)

              x=rand(1,20);

              y=rand(1,20);

              z=peaks(x,y*pi);

              t=delaunay(x,y);

              trisurf(t,x,y,z)

              title('Figure1:Triangular Surface Plot');

实例23:视角的调整

              function shili23

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例23');

              x=-5:0.5:5;

              [x,y]=meshgrid(x);

              r=sqrt(x.^2+y.^2)+eps;

              z=sin(r)./r;

              subplot(2,2,1)

              surf(x,y,z)

              xlabel('X-axis')

              ylabel('Y-axis')

              zlabel('Z-axis')

              title('Figure1')

              view(-37.5,30)

              subplot(2,2,2)

              surf(x,y,z)

              xlabel('X-axis')

              ylabel('Y-axis')

              zlabel('Z-axis')

              title('Figure2')

              view(-37.5+90,30)

              subplot(2,2,3)

              surf(x,y,z)

              xlabel('X-axis')

              ylabel('Y-axis')

              zlabel('Z-axis')

              title('Figure3')

              view(-37.5,60)

              subplot(2,2,4)

              surf(x,y,z)

              xlabel('X-axis')

              ylabel('Y-axis')

              zlabel('Z-axis')

              title('Figure4')

              view(180,0)

实例24:向量场的绘制

              function shili24

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例24');

              subplot(2,2,1)

              z=peaks;

              ribbon(z)

              title('Figure1')

              subplot(2,2,2)

              [x,y,z]=peaks(15);

              [dx,dy]=gradient(z,0.5,0.5);

              contour(x,y,z,10)

              hold on

              quiver(x,y,dx,dy)

              hold off

              title('Figure2')

              subplot(2,2,3)

              [x,y,z]=peaks(15);

              [nx,ny,nz]=surfnorm(x,y,z);

              surf(x,y,z)

              hold on

              quiver3(x,y,z,nx,ny,nz)

              hold off

              title('Figure3')

              subplot(2,2,4)

              x=rand(3,5);

              y=rand(3,5);

              z=rand(3,5);

              c=rand(3,5);

              fill3(x,y,z,c)

              grid on

              title('Figure4')

  实例26:柱状图

              function shili26

              h0=figure('toolbar','none',...

                  'position',[200 50 450 450],...

                  'name','实例26');

              subplot(2,1,1)

              x=[5 2 1

                  8 7 3

                  9 8 6

                  5 5 5

                  4 3 2];

              bar(x)

              xlabel('X');

              ylabel('Y');

              title('第一子图');

              subplot(2,1,2)

              y=[5 2 1

                  8 7 3

                  9 8 6

                  5 5 5

                  4 3 2];

              barh(y)

              xlabel('X');

              ylabel('Y');

              title('第二子图');

实例28:羽状图

              function shili28

              h0=figure('toolbar','none',...

                  'position',[200 150 450 350],...

                  'name','实例28');

              subplot(2,1,1)

              alpha=90:-10:0;

              r=ones(size(alpha));

              m=alpha*pi/180;

              n=r*10;

              [u,v]=pol2cart(m,n);

              feather(u,v)

              title('羽状图')

              axis([0 20 0 10])

              subplot(2,1,2)

              t=0:0.5:10;

              x=0.05+i;

              y=exp(-x*t);

              feather(y)

              title('复数矩阵的羽状图')

实例29:立体透视(1

              function shili29

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例29');

              [x,y,z]=meshgrid(-2:0.1:2,...

                  -2:0.1:2,...

                  -2:0.1:2);

              v=x.*exp(-x.^2-y.^2-z.^2);

              grid on

              for i=-2:0.5:2;

                  h1=surf(linspace(-2,2,20),...

                      linspace(-2,2,20),...

                      zeros(20)+i);

                  rotate(h1,[1 -1 1],30)

                  dx=get(h1,'xdata');

                  dy=get(h1,'ydata');

                  dz=get(h1,'zdata');

                  delete(h1)

                  slice(x,y,z,v,[-2 2],2,-2)

                  hold on

                  slice(x,y,z,v,dx,dy,dz)

                  hold off

                  axis tight

                  view(-5,10)

                  drawnow

              end

实例30:立体透视(2

              function shili30

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例30');

              [x,y,z]=meshgrid(-2:0.1:2,...

                  -2:0.1:2,...

                  -2:0.1:2);

              v=x.*exp(-x.^2-y.^2-z.^2);

              [dx,dy,dz]=cylinder;

              slice(x,y,z,v,[-2 2],2,-2)

              for i=-2:0.2:2

                  h=surface(dx+i,dy,dz);

                  rotate(h,[1 0 0],90)

                  xp=get(h,'xdata');

                  yp=get(h,'ydata');

                  zp=get(h,'zdata');

                  delete(h)

                  hold on

                  hs=slice(x,y,z,v,xp,yp,zp);

                  axis tight

                  xlim([-3 3])

                  view(-10,35)

                  drawnow

                  delete(hs)

                  hold off

              end

实例31:表面图形

              function shili31

              h0=figure('toolbar','none',...

                  'position',[200 150 550 250],...

                  'name','实例31');

              subplot(1,2,1)

              x=rand(100,1)*16-8;

              y=rand(100,1)*16-8;

              r=sqrt(x.^2+y.^2)+eps;

              z=sin(r)./r;

              xlin=linspace(min(x),max(x),33);

              ylin=linspace(min(y),max(y),33);

              [X,Y]=meshgrid(xlin,ylin);

              Z=griddata(x,y,z,X,Y,'cubic');

              mesh(X,Y,Z)

              axis tight

              hold on

              plot3(x,y,z,'.','Markersize',20)

              subplot(1,2,2)

              k=5;

              n=2^k-1;

              theta=pi*(-n:2:n)/n;

              phi=(pi/2)*(-n:2:n)'/n;

              X=cos(phi)*cos(theta);

              Y=cos(phi)*sin(theta);

              Z=sin(phi)*ones(size(theta));

              colormap([0 0 0;1 1 1])

              C=hadamard(2^k);

              surf(X,Y,Z,C)

              axis square

实例33:曲线转换按钮

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例33');

              x=0:0.5:2*pi;

              y=sin(x);

              h=plot(x,y);

              grid on

              huidiao=[...

                  'if i==1,',...

                  'i=0;,',...

                  'y=cos(x);,',...

                  'delete(h),',...

                  'set(hm,''string'',''正弦函数''),',...

                  'h=plot(x,y);,',...

                  'grid on,',...

                  'else if i==0,',...

                  'i=1;,',...

                  'y=sin(x);,',...

                  'set(hm,''string'',''余弦函数''),',...

                  'delete(h),',...

                  'h=plot(x,y);,',...

                  'grid on,',...

                  'end,',...

                  'end'];

              hm=uicontrol(gcf,'style','pushbutton',...

                  'string','余弦函数',...

                  'callback',huidiao);

              i=1;

              set(hm,'position',[250 20 60 20]);

              set(gca,'position',[0.2 0.2 0.6 0.6])

              title('按钮的使用')

              hold on

实例34:栅格控制按钮

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例34');

              x=0:0.5:2*pi;

              y=sin(x);

              plot(x,y)

              huidiao1=[...

                      'set(h_toggle2,''value'',0),',...

                      'grid on,',...

                      ];

              huidiao2=[...

                      'set(h_toggle1,''value'',0),',...

                      'grid off,',...

                      ];

              h_toggle1=uicontrol(gcf,'style','togglebutton',...

                  'string','grid on',...

                  'value',0,...

                  'position',[20 45 50 20],...

                  'callback',huidiao1);

              h_toggle2=uicontrol(gcf,'style','togglebutton',...

                  'string','grid off',...

                  'value',0,...

                  'position',[20 20 50 20],...

                  'callback',huidiao2);

              set(gca,'position',[0.2 0.2 0.6 0.6])

              title('开关按钮的使用')

实例35:编辑框的使用

              h0=figure('toolbar','none',...

                  'position',[200 150 350 250],...

                  'name','实例35');

              f='Please input the letter';

              huidiao1=[...

                      'g=upper(f);,',...

                      'set(h2_edit,''string'',g),',...

                  ];

              huidiao2=[...

                      'g=lower(f);,',...

                      'set(h2_edit,''string'',g),',...

                  ];

              h1_edit=uicontrol(gcf,'style','edit',...

                  'position',[100 200 100 50],...

                  'HorizontalAlignment','left',...

                  'string','Please input the letter',...

                  'callback','f=get(h1_edit,''string'');',...

                  'background','w',...

                  'max',5,...

                  'min',1);

              h2_edit=uicontrol(gcf,'style','edit',...

                  'HorizontalAlignment','left',...

                  'position',[100 100 100 50],...

                  'background','w',...

                  'max',5,...

                  'min',1);

              h1_button=uicontrol(gcf,'style','pushbutton',...

                  'string','小写变大写',...

                  'position',[100 45 100 20],...

                  'callback',huidiao1);

              h2_button=uicontrol(gcf,'style','pushbutton',...

                  'string','大写变小写',...

                  'position',[100 20 100 20],...

                  'callback',huidiao2);

实例36:弹出式菜单

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例36');

              x=0:0.5:2*pi;

              y=sin(x);

              h=plot(x,y);

              grid on

              hm=uicontrol(gcf,'style','popupmenu',...

                  'string',...

                  'sin(x)|cos(x)|sin(x)+cos(x)|exp(-sin(x))',...

                  'position',[250 20 50 20]);

              set(hm,'value',1)

              huidiao=[...

                      'v=get(hm,''value'');,',...

                      'switch v,',...

                      'case 1,',...

                      'delete(h),',...

                      'y=sin(x);,',...

                      'h=plot(x,y);,',...

                      'grid on,',...

                      'case 2,',...

                      'delete(h),',...

                      'y=cos(x);,',...

                      'h=plot(x,y);,',...

                       'grid on,',...

                      'case 3,',...

                      'delete(h),',...

                      'y=sin(x)+cos(x);,',...

                      'h=plot(x,y);,',...

                       'grid on,',...

                      'case 4,',...

                      'delete(h),',...

                      'y=exp(-sin(x));,',...

                      'h=plot(x,y);,',...

                       'grid on,',...

                      'end'];

              set(hm,'callback',huidiao)

              set(gca,'position',[0.2 0.2 0.6 0.6])

              title('弹出式菜单的使用')

              hold on

实例37:滑标的使用

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例37');

              [x,y]=meshgrid(-8:0.5:8);

              r=sqrt(x.^2+y.^2)+eps;

              z=sin(r)./r;

              h0=mesh(x,y,z);

              h1=axes('position',...

                  [0.2 0.2 0.5 0.5],...

                  'visible','off');

              htext=uicontrol(gcf,...

                  'units','points',...

                  'position',[20 30 45 15],...

                  'string','brightness',...

                  'style','text');

              hslider=uicontrol(gcf,...

                  'units','points',...

                  'position',[10 10 300 15],...

                  'min',-1,...

                  'max',1,...

                  'style','slider',...

                  'callback',...

                  'brighten(get(hslider,''value''))');

实例38:多选菜单

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例38');

              [x,y]=meshgrid(-8:0.5:8);

              r=sqrt(x.^2+y.^2)+eps;

              z=sin(r)./r;

              h0=mesh(x,y,z);

              hlist=uicontrol(gcf,'style','listbox',...

                  'string','default|spring|summer|autumn|winter',...

                  'max',5,...

                  'min',1,...

                  'position',[20 20 80 100],...

                  'callback',[...

                      'k=get(hlist,''value'');,',...

                      'switch k,',...

                      'case 1,',...

                      'colormap default,',...

                      'case 2,',...

                      'colormap spring,',...

                      'case 3,',...

                      'colormap summer,',...

                      'case 4,',...

                      'colormap autumn,',...

                      'case 5,',...

                      'colormap winter,',...

                      'end']);

   实例39:菜单控制的使用

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例39');

              x=0:0.5:2*pi;

              y=cos(x);

              h=plot(x,y);

              grid on

              set(gcf,'toolbar','none')

              hm=uimenu('label','example');

              huidiao1=[...

                      'set(hm_gridon,''checked'',''on''),',...

                      'set(hm_gridoff,''checked'',''off''),',...

                      'grid on'];

              huidiao2=[...

                      'set(hm_gridoff,''checked'',''on''),',...

                      'set(hm_gridon,''checked'',''off''),',...

                      'grid off'];

              hm_gridon=uimenu(hm,'label','grid on',...

                  'checked','on',...

                  'callback',huidiao1);

              hm_gridoff=uimenu(hm,'label','grid off',...

                  'checked','off',...

                  'callback',huidiao2);

   实例40UIMENU菜单的应用

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例40');

              h1=uimenu(gcf,'label','函数');

              h11=uimenu(h1,'label','轮廓图',...

                  'callback',[...

                      'set(h31,''checked'',''on''),',...

                      'set(h32,''checked'',''off''),',...

                      '[x,y,z]=peaks;,',...

                      'contour3(x,y,z,30)']);

              h12=uimenu(h1,'label','高斯分布',...

                  'callback',[...

                      'set(h31,''checked'',''on''),',...

                      'set(h32,''checked'',''off''),',...

                      'mesh(peaks);,',...

                      'axis tight']);

              h13=uimenu(h1,'label','Sinc函数',...

                  'callback',[...

                      'set(h31,''checked'',''on''),',...

                      'set(h32,''checked'',''off''),',...

                      '[x,y]=meshgrid(-8:0.5:8);,',...

                      'r=sqrt(x.^2+y.^2)+eps;,',...

                      'z=sin(r)./r;,',...

                      'mesh(x,y,z)']);

              h2=uimenu(gcf,'label','色彩');

              hl2(1)=uimenu(h2,'label','Default',...

                  'checked','on',...

                  'callback',...

                  [...

                      'set(hl2,''checked'',''off''),',...

                      'set(hl2(1),''checked'',''on''),',...

                      'colormap(''default'')']);

              hl2(2)=uimenu(h2,'label','spring',...

                  'callback',...

                  [...

                      'set(hl2,''checked'',''off''),',...

                      'set(hl2(2),''checked'',''on''),',...

                      'colormap(spring)']);

              hl2(3)=uimenu(h2,'label','Summer',...

                  'callback',...

                  [...

                      'set(hl2,''checked'',''off''),',...

                      'set(hl2(3),''checked'',''on''),',...

                      'colormap(summer)']);

              hl2(4)=uimenu(h2,'label','Autumn',...

                  'callback',...

                  [...

                      'set(hl2,''checked'',''off''),',...

                      'set(hl2(4),''checked'',''on''),',...

                      'colormap(autumn)']);

              hl2(5)=uimenu(h2,'label','Winter',...

                  'callback',...

                  [...

                      'set(hl2,''checked'',''off''),',...

                      'set(hl2(5),''checked'',''on''),',...

                      'colormap(winter)']);

              h3=uimenu(gcf,'label','坐标选项');

              h31=uimenu(h3,'label','Axis on',...

                  'callback',...

                  [...

                      'axis on,',...

                      'set(h31,''checked'',''on''),',...

                      'set(h32,''checked'',''off'')']);

              h32=uimenu(h3,'label','Axis off',...

                  'callback',...

                  [...

                      'axis off,',...

                      'set(h32,''checked'',''on''),',...

                      'set(h31,''checked'',''off'')']);

实例41:除法计算器

              h=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例41');

              h1=uicontrol(gcf,'style','edit',...

                  'position',[80 200 100 20],...

                  'HorizontalAlignment','right',...

                  'callback',['m=get(h1,''string'');,',...

                      'a=str2num(m);']);

              h2=uicontrol(gcf,'style','edit',...

                  'HorizontalAlignment','right',...

                  'position',[80 150 100 20],...

                  'callback',['n=get(h2,''string'');,',...

                      'b=str2num(n);']);

              h3=uicontrol(gcf,'style','text',...

                  'string','被除数',...

                  'position',[80 230 100 20]);

              h4=uicontrol(gcf,'style','edit',...

                  'position',[80 50 100 20]);

              h5=uicontrol(gcf,'style','pushbutton',...

                  'position',[80 100 100 20],...

                  'string','=',...

                  'callback',[...

                      'if b==0,',...

                      'h7=errordlg(''除数不能为0'',''error'',''on'');,',...

                      'else,',...

                      'k=a/b;,',...

                      'c=num2str(k);,',...

                      'set(h4,''string'',c),',...

                      'end']);

              h8=uicontrol(gcf,'style','text',...

                  'string','除数',...

                  'position',[80 175 100 20]);

              h9=uicontrol(gcf,'style','text',...

                  'string','',...

                  'position',[80 75 100 20]);

实例42:单选框的使用

              h0=figure('toolbar','none',...

                  'position',[200 150 450 250],...

                  'name','实例42');

              x=0:0.5:2*pi;

              y=sin(x);

              plot(x,y)

              grid on

              set(gcf,'toolbar','none')

              g=set(gca,'position',[0.2 0.2 0.6 0.6]);

              huidiao1=[...

                      'grid on,',...

                      'set(box_on,''value'',1),',...

                      'set(box_off,''value'',0),'];

              huidiao2=[...

                      'grid off,',...

                      'set(box_off,''value'',1),',...

                      'set(box_on,''value'',0),'];

              box_on=uicontrol(gcf,'style','radio',...

                  'position',[5 50 50 20],...

                  'string','grid on',...

                  'value',1,...

                  'callback',huidiao1);

              box_off=uicontrol(gcf,'style','radio',...

                  'position',[5 20 50 20],...

                  'string','grid off',...

                  'value',0,...

                  'callback',huidiao2);

              title('无线按钮的使用')

              实例43:添加环境效果

              h0=figure('toolbar','none',...

                  'position',[198 56 450 468],...

                  'name','实例43');

              h1=axes('parent',h0,...

                  'position',[0.15 0.45 0.7 0.5],...

                  'visible','off');

              sphere

              h=findobj('type','surface');

              shading interp

              axis equal

              l=light('position',[0 -2 1]);

              k(1)=get(h,'specularstrength');

              k(2)=get(h,'diffusestrength');

              k(3)=get(h,'specularexponent');

              k(4)=get(h,'specularcolorreflectance');

              u1=uimenu('parent',h0,...

                  'label','灯光效果',...

                  'tag','u1',...

                  'backgroundcolor',[0.75 0.75 0.75]);

              u11=uimenu('parent',u1,...

                  'label','gouraud',...

                  'tag','u11',...

                  'backgroundcolor',[0.75 0.75 0.75],...

                  'callback',[...

                      'set(u11,''checked'',''on'');,',...

                      'set(u12,''checked'',''off'');,',...

                      'set(h,''facelighting'',''gouraud'')']);

              u12=uimenu('parent',u1,...

                  'label','phong',...

                  'tag','u12',...

                  'backgroundcolor',[0.75 0.75 0.75],...

                  'callback',[...

                      'set(u11,''checked'',''off'');,',...

                      'set(u12,''checked'',''on'');,',...

                      'set(h,''facelighting'',''gouraud'')']);

              u2=uimenu('parent',h0,...

                  'label','背面灯光',...

                  'tag','u2',...

                  'backgroundcolor',[0.75 0.75 0.75]);

              u21=uimenu('parent',u2,...

                  'label','reverselit',...

                  'tag','u21',...

                  'checked','on',...

                  'backgroundcolor',[0.75 0.75 0.75],...

                  'callback',[...

                      'set(u21,''checked'',''on'');,',...

                      'set(u22,''checked'',''off'');,',...

                      'set(h,''backfacelighting'',''reverselit'')']);

              u22=uimenu('parent',u2,...

                  'label','reverselit',...

                  'tag','u22',...

                  'backgroundcolor',[0.75 0.75 0.75],...

                  'callback',[...

                      'set(u21,''checked'',''off'');,',...

                      'set(u22,''checked'',''on'');,',...

                      'set(h,''backfacelighting'',''reverselit'')']);

              s1=uicontrol('parent',h0,...

                  'units','points',...

                  'style','slider',...

                  'tag','s1',...

                  'min',0,...

                  'max',1,...

                  'value',k(1),...

                  'position',[20 80 100 15],...

                  'callback',[...

                      's1value=get(s1,''value'');,',...

                      'set(h,''specularstrength'',s1value)']);

              t1=uicontrol('parent',h0,...

                  'units','points',...

                  'style','text',...

                  'tag','t1',...

                  'string','镜面反射强度',...

                  'position',[20 97 100 15]);

              s2=uicontrol('parent',h0,...

                  'units','points',...

                  'style','slider',...

                  'tag','s2',...

                  'min',0,...

                  'max',1,...

                  'value',k(2),...

                  'position',[20 30 100 15],...

                  'callback',[...

                      's2value=get(s2,''value'');,',...

                      'set(h,''diffusestrength'',s2value)']);

              t2=uicontrol('parent',h0,...

                  'units','points',...

                  'style','text',...

                  'tag','t2',...

                  'string','漫反射强度',...

                  'position',[20 47 100 15]);

              s3=uicontrol('parent',h0,...

                  'units','points',...

                  'style','slider',...

                  'tag','s3',...

                  'min',0.1,...

                  'max',1,...

                  'value',k(3)/20,...

                  'position',[220 80 100 15],...

                  'callback',[...

                      's3value=get(s3,''value'')+eps;,',...

                      'set(h,''specularexponent'',20*s3value)']);

              t3=uicontrol('parent',h0,...

                  'units','points',...

                  'style','text',...

                  'tag','t3',...

                  'string','镜面指数',...

                  'position',[220 97 100 15]);

              s4=uicontrol('parent',h0,...

                  'units','points',...

                  'style','slider',...

                  'tag','s4',...

                  'min',0,...

                  'max',1,...

                  'value',k(4),...

                  'position',[220 30 100 15],...

                  'callback',[...

                      's4value=get(s4,''value'');,',...

                      'set(h,''specularcolorreflectance'',s4value)']);

              t4=uicontrol('parent',h0,...

                  'units','points',...

                  'style','text',...

                  'tag','t1',...

                  'string','镜面颜色反射比',...

                  'position',[220 47 100 15]);

              b1=uicontrol('parent',h0,...

                  'units','points',...

                  'style','pushbutton',...

                  'tag','b1',...

                  'string','关闭',...

                  'position',[145 45 50 30],...

                  'callback','close');

  实例44:改变坐标轴范围

              h0=figure('toolbar','none',...

                  'position',[198 56 408 468],...

                  'name','实例44');

              h1=axes('parent',h0,...

                  'position',[0.15 0.45 0.7 0.5],...

                  'visible','on');

              e1=uicontrol('parent',h0,...

                  'style','edit',...

                  'string',1,...

                  'position',[50 120 50 20]);

              t1=uicontrol('parent',h0,...

                  'style','text',...

                  'string','X轴最小值',...

                  'position',[35 150 80 20]);

              e2=uicontrol('parent',h0,...

                  'style','edit',...

                  'string',5,...

                  'position',[50 60 50 20]);

              t2=uicontrol('parent',h0,...

                  'style','text',...

                  'string','X轴最大值',...

                  'position',[35 90 80 20]);

              e3=uicontrol('parent',h0,...

                  'style','edit',...

                  'string',1,...

                  'position',[150 120 50 20]);

              t3=uicontrol('parent',h0,...

                  'style','text',...

                  'string','Y轴最小值',...

                  'position',[135 150 80 20]);

              e4=uicontrol('parent',h0,...

                  'style','edit',...

                  'string',5,...

                  'position',[150 60 50 20]);

              t4=uicontrol('parent',h0,...

                  'style','text',...

                  'string','Y轴最大值',...

                  'position',[135 90 80 20]);

              e5=uicontrol('parent',h0,...

                  'style','edit',...

                  'string',20,...

                  'position',[250 120 50 20]);

              t5=uicontrol('parent',h0,...

                  'style','text',...

                  'horizontalalignment','left',...

                  'string','点数',...

                  'position',[250 150 30 20]);

              b1=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'string','绘图',...

                  'position',[250 60 60 40],...

                  'callback',[...

                      'a=str2num(get(e1,''string''));,',...

                      'b=str2num(get(e2,''string''));,',...

                      'c=str2num(get(e3,''string''));,',...

                      'd=str2num(get(e4,''string''));,',...

                      'n=str2num(get(e5,''string''));,',...

                      'xgrid=linspace(-abs(a),abs(a),n);,',...

                      'ygrid=linspace(-abs(b),abs(b),n);,',...

                      '[x,y]=meshgrid(xgrid,ygrid);,',...

                      'z=c*sqrt(d-y.*y/b/b-x.*x/a/a);,',...

                      'u=1;,',...

                      'z1=real(z);,',...

                      'for k=2:n-1,',...

                      'for j=2:n-1,',...

                      'if imag(z(k,j))~=0,',...

                      'z1(k,j)=0;,',...

                      'end,',...

                      'if all(imag(z([k-1:k+1],[j-1:j+1])))~=0,',...

                      'z1(k,j)=nan;,',...

                      'end,',...

                      'end,',...

                      'end,',...

                      'surf(x,y,z1),',...

                      'hold on,',...

                      'if u==1,',...

                      'z2=-z1;,',...

                      'surf(x,y,z2),',...

                      

              'axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);,',...

                      'end,',...

                      'xlabel(''x'');,',...

                      'ylabel(''y'');,',...

                      'zlabel(''z'');,',...

                      'hold off']);

              b2=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'string','关闭',...

                  'position',[150 10 60 20],...

                  'callback','close');

  实例45:简单运算器

              h1=uicontrol(gcf,'style','radio',...

                  'string','',...

                  'value',1,...

                  'position',[20 150 40 20],...

                  'callback',[...

                      'k=1;,',...

                      'set(h1,''value'',1),',...

                      'set(h2,''value'',0),',...

                      'set(h3,''value'',0)']);

              h2=uicontrol(gcf,'style','radio',...

                  'string','',...

                  'position',[20 110 40 20],...

                  'callback',[...

                      'k=2;,',...

                      'set(h2,''value'',1),',...

                      'set(h1,''value'',0),',...

                      'set(h3,''value'',0)']);

              h3=uicontrol(gcf,'style','radio',...

                  'string','',...

                  'position',[20 70 40 20],...

                  'callback',[...

                      'k=3;,',...

                      'set(h3,''value'',1),',...

                      'set(h2,''value'',0),',...

                      'set(h1,''value'',0)']);

              e1=uicontrol(gcf,'style','edit',...

                  'position',[80 150 100 20]);

              e2=uicontrol(gcf,'style','edit',...

                  'position',[80 110 100 20]);

              e3=uicontrol(gcf,'style','edit',...

                  'position',[80 70 100 20]);

              b1=uicontrol(gcf,'style','pushbutton',...

                  'string','运算',...

                  'position',[200 150 80 30],...

                  'callback',[...

                      'x=str2num(get(e1,''string''));,',...

                      'y=str2num(get(e2,''string''));,',...

                      'switch k,',...

                      'case 1,',...

                      'z=x+y;,',...

                      'case 2,',...

                      'z=x-y;,',...

                      'case 3,',...

                      'z=x*y;,',...

                      'end,',...

                      'set(e3,''string'',num2str(z))']);

              b2=uicontrol(gcf,'style','pushbutton',...

                  'string','退出',...

                  'position',[200 100 80 30],...

                  'callback','close');

              实例46:曲线色彩的修改

              h0=figure('toolbar','none',...

                  'position',[198 56 408 468],...

                  'name','my second gui');

              h1=axes('parent',h0,...

                  'position',[0.15 0.45 0.7 0.5],...

                  'visible','on');

              x=0:0.1:2*pi;

              k=plot(x,sin(x));

              xlabel('自变量X');

              ylabel('函数值Y');

              title('图形色彩改变');

              p1=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'backgroundcolor','r',...

                  'position',[60 100 50 30],...

                  'callback','set(k,''color'',''r'')');

              p2=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'backgroundcolor','g',...

                  'position',[170 100 50 30],...

                  'callback','set(k,''color'',''g'')');

              p3=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'backgroundcolor','b',...

                  'position',[280 100 50 30],...

                  'callback','set(k,''color'',''b'')');

              p4=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'backgroundcolor',[1 1 1],...

                  'fontsize',20,...

                  'fontweight','demi',...

                  'string','关闭',...

                  'position',[150 30 80 60],...

                  'callback','close');

              t1=uicontrol('parent',h0,...

                  'style','text',...

                  'string','红色',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[60 120 50 20]);

              t2=uicontrol('parent',h0,...

                  'style','text',...

                  'string','绿色',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[170 120 50 20]);

              t3=uicontrol('parent',h0,...

                  'style','text',...

                  'string','蓝色',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[280 120 50 20]);

实例47:曲线标记

              h0=figure('toolbar','none',...

                  'position',[198 56 408 468],...

                  'name','my second gui');

              h1=axes('parent',h0,...

                  'position',[0.15 0.45 0.7 0.5],...

                  'visible','on');

              x=0:0.1:2*pi;

              k=plot(x,sin(x),'*');

              xlabel('自变量X');

              ylabel('函数值Y');

              title('标记类型的改变');

              p1=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'string','+',...

                  'fontsize',20,...

                  'foregroundcolor',[1 1 1],...

                  'backgroundcolor',[0 0 0],...

                  'position',[60 100 50 20],...

                  'callback','set(k,''marker'',''+'')');

              p2=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'string','o',...

                  'fontsize',20,...

                  'foregroundcolor',[1 1 1],...

                  'backgroundcolor',[0 0 0],...

                  'position',[170 100 50 20],...

                  'callback','set(k,''marker'',''o'')');

              p3=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'string','x',...

                  'fontsize',20,...

                  'foregroundcolor',[1 1 1],...

                  'backgroundcolor',[0 0 0],...

                  'position',[280 100 50 20],...

                  'callback','set(k,''marker'',''x'')');

              p4=uicontrol('parent',h0,...

                  'style','pushbutton',...

                  'backgroundcolor',[1 1 1],...

                  'fontsize',20,...

                  'fontweight','demi',...

                  'string','关闭',...

                  'position',[150 30 80 60],...

                  'callback','close');

              t1=uicontrol('parent',h0,...

                  'style','text',...

                  'string','星号',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[60 120 50 20]);

              t2=uicontrol('parent',h0,...

                  'style','text',...

                  'string','圆圈',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[170 120 50 20]);

              t3=uicontrol('parent',h0,...

                  'style','text',...

                  'string','叉号',...

                  'fontsize',12,...

                  'fontweight','demi',...

                  'position',[280 120 50 20]);

  数学算法(3

1)动态规划算法

plot(100+t+15*cos(3.05*t),t=0..200,coords=polar,axes=none,scaling=constrained);

2)分治算法

function Binary_Search(L,a,b,x);

begin

  if a>b then return(-1)

            else begin

                   m:=(a+b) div 2;

                   if x=L[m] then return(m)

                             else if x>L[m] 

                                    then return(Binary_Search(L,m+1,b,x));

                                    else return(Binary_Search(L,a,m-1,x));

                  end; 

end;

4)数据处理

function readprocess(file)

            fid=fopen(file,'rt');

            if(fid==-1)

                display('File not exist!');

                return;

            end

            array=[];

            while(~feof(fid))

                str=fscanf(fid,'%s',1);

                if(length(str)>10)

                    %d+00005.00;v+00002.72;e+00002.28;u-0007;m+0761;t+0295;

                    col=sscanf(str,'d%f;v%f;e%f;u%f;m%d;t%d;');

                    array=[array col];

                end

            end

            fclose(fid);

            dhead=array(1,:);

            head=array(2,:);

            'r:',t,head,'b-');

一个程序的M文件-----概率

function daoju_n=daoju_n(x,y)%输入的xu的开始,yu的结束,x>100

a=[1 1 1 2 2 2 4 6 9 11 11 13 9 6 8 4 4 6];

f=a*0.01;%概率

n0=[100 :50:900];n1=[100 n0];n2=[150:50:900];n3=[0 n2 0];

n=(n1+n3)/2;%刀具完成件数为Ni,取他们的间隔的平均

ii=0;

for(u=x:50:y)%按步长搜索

    for(k=1:18)

    if(u==n3(1,k))

        for(i=1:k)

            c1(i)=n(i)*f(i);d(i)=f(i);

        end

        c=sum(c1);g=sum(d); h=1-g;

        for(j=i+1:18)

            e(j)=f(j);

        end

    end

    end

au=(c+u*h)/g;%au

d=1/(1/au+1/11400);%c

nn=sqrt(2*10*d/200)%求各个u对应的n

min=1000/u+10/nn+(nn+1)*200/(2*d)+3000/d%%每个u对应L的数值

end