?? matlab實用程序百例1.txt
字號:
'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')
實例25:燈光定位
function shili25
h0=figure('toolbar','none',...
'position',[200 150 450 250],...
'name','實例25');
vert=[1 1 1;1 2 1;
2 2 1;2 1 1;
1 1 2;1 2 2;
2 2 2;2 1 2];
fac=[1 2 3 4;2 6 7 3;
4 3 7 8;1 5 8 4;
1 2 6 5;5 6 7 8];
grid off
sphere(36)
h=findobj('type','surface');
set(h,'facelighting','phong',...
'facecolor',...
'interp',...
'edgecolor',[0.4 0.4 0.4],...
'backfacelighting',...
'lit')
hold on
patch('faces',fac,'vertices',vert,...
'facecolor','y');
light('position',[1 3 2]);
light('position',[-3 -1 3]);
material shiny
axis vis3d off
hold off
實例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('第二子圖');
實例27:設置照明方式
function shili27
h0=figure('toolbar','none',...
'position',[200 150 450 350],...
'name','實例27');
subplot(2,2,1)
sphere
shading flat
camlight left
camlight right
lighting flat
colorbar
axis off
title('Figure1')
subplot(2,2,2)
sphere
shading flat
camlight left
camlight right
lighting gouraud
colorbar
axis off
title('Figure2')
subplot(2,2,3)
sphere
shading interp
camlight right
camlight left
lighting phong
colorbar
axis off
title('Figure3')
subplot(2,2,4)
sphere
shading flat
camlight left
camlight right
lighting none
colorbar
axis off
title('Figure4')
實例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
實例32:沿曲線移動的小球
h0=figure('toolbar','none',...
'position',[198 56 408 468],...
'name','實例32');
h1=axes('parent',h0,...
'position',[0.15 0.45 0.7 0.5],...
'visible','on');
t=0:pi/24:4*pi;
y=sin(t);
plot(t,y,'b')
n=length(t);
h=line('color',[0 0.5 0.5],...
'linestyle','.',...
'markersize',25,...
'erasemode','xor');
k1=uicontrol('parent',h0,...
'style','pushbutton',...
'position',[80 100 50 30],...
'string','開始',...
'callback',[...
'i=1;',...
'k=1;,',...
'm=0;,',...
'while 1,',...
'if k==0,',...
'break,',...
'end,',...
'if k~=0,',...
'set(h,''xdata'',t(i),''ydata'',y(i)),',...
'drawnow;,',...
'i=i+1;,',...
'if i>n,',...
'm=m+1;,',...
'i=1;,',...
'end,',...
'end,',...
'end']);
k2=uicontrol('parent',h0,...
'style','pushbutton',...
'position',[180 100 50 30],...
'string','停止',...
'callback',[...
'k=0;,',...
'set(e1,''string'',m),',...
'p=get(h,''xdata'');,',...
'q=get(h,''ydata'');,',...
'set(e2,''string'',p);,',...
'set(e3,''string'',q)']);
k3=uicontrol('parent',h0,...
'style','pushbutton',...
'position',[280 100 50 30],...
'string','關閉',...
'callback','close');
e1=uicontrol('parent',h0,...
'style','edit',...
'position',[60 30 60 20]);
t1=uicontrol('parent',h0,...
'style','text',...
'string','循環次數',...
'position',[60 50 60 20]);
e2=uicontrol('parent',h0,...
'style','edit',...
'position',[180 30 50 20]);
t2=uicontrol('parent',h0,...
'style','text',...
'string','終點的X坐標值',...
'position',[155 50 100 20]);
e3=uicontrol('parent',h0,...
'style','edit',...
'position',[300 30 50 20]);
t3=uicontrol('parent',h0,...
'style','text',...
'string','終點的Y坐標值',...
'position',[275 50 100 20]);
實例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('彈出式菜單的使用')
實例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',...
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -