【MATLAB100个实用小技巧】——界面设计(56-66)

文章目录

  • 前言
  • 系列文章
  • 56. 图形效果(1)
  • 57. 图形效果
  • 58. 可控制小球运动速度的用户界面
  • 59. 设置坐标轴纵横轴比
  • 60. 二阶系统显示
  • 61. 浏览流体数据
  • 62. 简单计算器
  • 63. 字母统计
  • 64. 时间窗口
  • 65. 时间计算器
  • 66. 数字操作

前言

MATLAB是一个功能强大的软件,我们可以利用MATLAB进行绘图、算法验证、仿真实验等等。在学习MATLAB的过程中,繁多的命令与代码往往容易使我们脑容量过载请添加图片描述
本系列将总结一些常见的MATLAB编程小技巧
可能有些地方会有些错误或者是不太完善的,还请大家在评论区直接指出❤️❤️❤️

系列文章

【MATLAB100个实用小技巧】——图形应用(1-10)
【MATLAB100个实用小技巧】——图形应用(11-20)
【MATLAB100个实用小技巧】——图形应用(21-32)
【MATLAB100个实用小技巧】——界面设计(33-43)
【MATLAB100个实用小技巧】——界面设计(44-55)
【MATLAB100个实用小技巧】——界面设计(56-66)
【MATLAB100个实用小技巧】——图形处理(67-75)
【MATLAB100个实用小技巧】——图形处理(76-84)
【MATLAB100个实用小技巧】——数值分析(85-100)

56. 图形效果(1)

代码

h0=figure('toolbar','none',...
'position',[198 56 450 468],...
'name','实例 56');
h1=axes('parent',h0,... 
    'position',[0.3 0.45 0.5 0.5],...
'visible','off'); 
l1=uimenu(gcf,'label','Draw figure',...
'tag','l1');
huidiao=[...
'if get(r1,''value'')==1,',... 
'shading faceted,',...
'end,',...
'if get(r2,''value'')==1,',... 
'shading flat,',...
'end,',...
'if get(r3,''value'')==1,',... 
'shading interp,',...
'end,',... 
'k=get(p1,''value'');,',... 
'switch k,',...
'case 1,',... 
'colormap(''cool''),',...
'case 2,',... 
'colormap(''spring''),',... 
'case 3,',...
'colormap(''summer''),',...
'case 4,',... 
'colormap(''autumn''),',... 
'case 5,',... 
'colormap(''winter''),',... 
'end'];
l11=uimenu('parent',l1,...
'label','Surface',...
'tag','l11',...
'callback',[...
'[x,y]=meshgrid(-8:0.5:8);,',...
'r=sqrt(x.^2+y.^2)+eps;,',...
'z=sin(r)./r;,',...
'surf(x,y,z),',...
huidiao]);
l12=uimenu('parent',l1,...
'label','Mesh',...
'tag','l12',...
'callback',[...
'mesh(peaks),',... 
huidiao]);
l13=uimenu('parent',l1,...
'label','Membrane',...
'tag','l13',...
'callback',[...
'mesh(membrane),',... 
huidiao]);
f1=uicontrol('parent',h0,... 
    'units','points',...
'listboxtop',0,...
'position',[12 6 100 101],...
'style','frame',...
'tag','f1'); 
r1=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[19.5 58.5 72.75 16.5],...
'string','shading faceted',...
'style','radiobutton',...
'tag','r1',...
'value',1,...
'callback',[...
'shading faceted,',... 
'set(r1,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);']);
r2=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[19.5 35.25 78.75 18.75],...
'string','shading flat',...
'style','radiobutton',...
'tag','r2',...
'value',0,...
'callback',[...
'shading flat,',...
'set(r2,''value'',1);,',...
'set(r1,''value'',0);,',...
'set(r3,''value'',0);']);
r3=uicontrol('parent',h0,...
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[19.5 12.75 71.25 18.75],...
'string','shading interp',...
'style','radiobutton',...
'tag','r3',...
'value',0,...
'callback',[...
'shading interp,',... 
'set(r3,''value'',1);,',...
'set(r1,''value'',0);,',...
'set(r2,''value'',0);']); 
t1=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'fontsize',12,...
'listboxtop',0,...
'position',[14.25 75.75 90.75 22.5],...
'string','平滑处理',...
'style','text',...
'tag','t1'); 
t2=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'fontsize',12,...
'listboxtop',0,...
'position',[117 69 72.75 17.5],...
'string','设置色调',...
'style','text',...
'tag','t2'); 
p1=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[116.25 39 72.75 20.25],...
'string','Cool|Spring|Summer|Autumn|Winter',... 
'style','popupmenu',...
'tag','p1',...
'value',1,...
'callback',[...
'k=get(p1,''value'');,',...
'switch k,',...
'case 1,',... 
'colormap(''cool''),',... 
'case 2,',... 
'colormap(''spring''),',... 
'case 3,',... 
'colormap(''summer''),',... 
'case 4,',...
'colormap(''autumn''),',... 
'case 5,',...
'colormap(''winter''),',...
'end']);
b1=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[12 243 72.75 30.75],...
'string','关闭',...
'tag','b1',...
'callback','close'); 
b2=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[216.75 67.5 83.25 18.75],...
'string','Colorbar',...
'tag','b2',...
'callback','colorbar');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第1张图片

57. 图形效果

代码

h0=figure('toolbar','none',...
'position',[168 94.5 315 289.5],...
'name','实例 57');
h1=axes('parent',h0,... 
    'position',[0.4 0.4 0.5 0.5],...
'visible','off'); f1=uicontrol('parent',h0,...
'style','frame',...
'position',[15 10 80 70],...
'string','dull',...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'tag','r1',...
'value',1,...
'callback',[...
'set(r1,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);,',... 
'material dull']);
r1=uicontrol('parent',h0,... 
    'style','radiobutton',...
    'position',[19.5 58.5 72.75 16.5],...
'string','dull',...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'tag','r1',...
'value',1,...
'callback',[...
'set(r1,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);,',... 
'material dull']);
r2=uicontrol('parent',h0,... 
    'style','radiobutton',...
    'position',[19.5 35.25 72.75 16.5],...
'string','metal',...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'tag','r2',...
'value',0,...
'callback',[...
'set(r2,''value'',1);,',...
'set(r1,''value'',0);,',...
'set(r3,''value'',0);,',... 
'material metal']);
r3=uicontrol('parent',h0,... 
    'style','radiobutton',...
    'position',[19.5 12.75 72.75 16.5],...
'string','shiny',...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'tag','r3',...
'value',0,...
'callback',[...
'set(r3,''value'',1);,',...
'set(r1,''value'',0);,',...
'set(r2,''value'',0);,',... 
'material shiny']);
u1=uimenu('parent',h0,...
'label','绘图',...
'Foregroundcolor',[0.753 0.753 0.753],...
'tag','u1',...
'callback',[...
'[x,y]=meshgrid(-8:0.5:8);,',...
'r=sqrt(x.^2+y.^2)+eps;,',...
'z=sin(r)./r;,',...
'surf(x,y,z),',... 
'shading interp']);
b1=uicontrol('parent',h0,... 
    'style','pushbutton',...
'position',[19.5 150 60 20],...
'string','light',...
'units','points',...
'Foregroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'tag','b1',...
'callback','camlight headlight'); 
b2=uicontrol('parent',h0,...
'style','pushbutton',...
'position',[19.5 100 60 20],...
'string','关闭',...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'tag','b2',...
'callback','close');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第2张图片

58. 可控制小球运动速度的用户界面

代码

h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','实例 58');
h1=axes('parent',h0,... 
    'position',[0.25 0.45 0.5 0.5],...
'visible','off'); 
t=0:0.1:4*pi;
x=sin(t);
y=cos(t);
plot(x,y);
axis equal;
axis off;
h=line('color',[1 0 0],...
'linestyle','-',... 
'xdata',0,...
'ydata',1,...
'markersize',20,...
'erasemode','xor');
n=length(t);
i=1;
speed=0.01;
k=0;
b1huidiao=[...
'k=0;,',...
'while 1,',... 
'set(h,''xdata'',x(i),''ydata'',y(i));,',...
'drawnow,',...
'pause(speed),',...
'i=i+1;,',...
'if i>n,',...
'i=1;,',...
'end,',...
'if k==1,',...
'break,',...
'end,',...
'end'];
b1=uicontrol('parent',h0,... 
    'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','开始',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 80 50 20],... 
'callback',b1huidiao);
b2=uicontrol('parent',h0,... 
    'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','停止',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 80 50 20],...
'callback','k=1;'); 
b3=uicontrol('parent',h0,... 
    'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','关闭',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 80 50 20],...
'callback',[...
'k=1;,',...
'close']); 
s1=uicontrol('parent',h0,...
'units','points',...
'tag','s1',...
'style','slider',...
'value',50*speed,...
'max',1,...
'min',0,...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 115 190 20],...
'callback',[...
'm=get(s1,''value'');,',...
'speed=m/50;']);
t1=uicontrol('parent',h0,... 
    'units','points',...
'tag','t1',...
'style','text',...
'fontsize',15,...
'string','小球运动速度',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 135 190 20]);

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第3张图片

59. 设置坐标轴纵横轴比

代码

h0=figure('name','实例 59');
h1=axes('parent',h0,... 
    'position',[0.3 0.45 0.5 0.5],...
'visible','off');
u1=uimenu('parent',h0,...
'label','绘图',...
'Foregroundcolor',[0.753 0.753 0.753],...
'tag','u1',...
'callback',[...
'[x,y]=meshgrid(-8:0.5:8);,',...
'r=sqrt(x.^2+y.^2)+eps;,',...
'z=sin(r)./r;,',...
'mesh(x,y,z),',... 
'shading interp,',...
'axis normal']);

f1=uicontrol('parent',h0,...
    'units','points',...
'listboxtop',0,...
'position',[12 6 100 150],...
'style','frame',...
'tag','f1');
t1=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[19.5 130 72.75 16.5],...
'string','坐标纵横比',...
'style','text',...
'tag','t1'); 
r1=uicontrol('parent',h0,...
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[19.5 110 72.75 16.5],...
'string','axis equal',...
'style','radiobutton',...
'tag','r1',...
'value',1,...
'callback',[...
'set(r1,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);,',...
'set(r4,''value'',0);,',...
'set(r5,''value'',0);,',... 
'axis equal']);
r2=uicontrol('parent',h0,...
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[19.5 85 72.75 16.5],...
'string','axis square',...
'style','radiobutton',...
'tag','r2',...
'value',0,...
'callback',[...
'set(r2,''value'',1);,',...
'set(r1,''value'',0);,',...
'set(r3,''value'',0);,',...
'set(r4,''value'',0);,',...
'set(r5,''value'',0);,',... 
'axis square']);
r3=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[19.5 60 72.75 16.5],...
'string','axis image',...
'style','radiobutton',...
'tag','r3',...
'value',0,...
'callback',[...
'set(r3,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r1,''value'',0);,',...
'set(r4,''value'',0);,',...
'set(r5,''value'',0);,',...
'axis image']);
r4=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[19.5 35 72.75 16.5],...
'string','axie vis3d',...
'style','radiobutton',...
'tag','r4',...
'value',0,...
'callback',[...
'set(r4,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);,',...
'set(r1,''value'',0);,',...
'set(r5,''value'',0);,',...
'axis vis3d']);
r5=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],... 
'listboxtop',0,...
'position',[19.5 10 72.75 16.5],...
'string','axis auto',...
'style','radiobutton',...
'tag','r5',...
'value',0,...
'callback',[...
'set(r5,''value'',1);,',...
'set(r2,''value'',0);,',...
'set(r3,''value'',0);,',...
'set(r4,''value'',0);,',...
'set(r1,''value'',0);,',... 
'axis auto']);
b1=uicontrol('parent',h0,... 
    'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[12 243 72.75 30.75],...
'string','关闭',...
'tag','b1',...
'callback','close'); b2=uicontrol('parent',h0,... 
'units','points',...
'backgroundcolor',[0.753 0.753 0.753],...
'listboxtop',0,...
'position',[216.75 67.5 83.25 18.75],...
'string','Colorbar',...
'tag','b2',...
'callback','colorbar');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第4张图片

60. 二阶系统显示

代码

h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','实例 60');
h1=axes('parent',h0,...
    'position',[0.25 0.45 0.5 0.5],...
'visible','off');
str1='当前阻尼比=';
z=0.52;
t=0:0.1:10;
y=step(1,[1 2*z 1],t); 
hline=plot(t,y);
grid on;
r1=uicontrol('parent',h0,...
'units','points',...
'tag','r1',...
'style','radio',...
'string','grid on',...
'position',[30 120 60 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'value',1,...
'callback',[...
'grid on,',... 
'set(r1,''value'',1);,',...
'set(r2,''value'',0)']); 
r2=uicontrol('parent',h0,...
'units','points',...
'tag','r2',...
'style','radio',...
'string','grid on',...
'position',[30 95 60 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'value',0,...
'callback',[...
'grid off,',... 
'set(r2,''value'',1);,',...
'set(r1,''value'',0)']);
s1=uicontrol('parent',h0,...
'units','points',...
'tag','s1',...
'style','slider',...
'value',z,...
'position',[100 95 150 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'max',1,...
'min',0,...
'callback',[...
'z=get(s1,''value'');,',... 
'set(t1,''string'',[str1,sprintf(''%1.4g\'',z)]);,',...
'delete(hline),',...
'y=step(1,[1 2*z 1],t);,',...
'hline=plot(t,y);,',...
'if get(r1,''value'')==1,',...
'grid on,',...
'end,',...
'if get(r2,''value'')==1,',...
'grid off,',...
'end']);    
t1=uicontrol('parent',h0,... 
    'units','points',...
'tag','t1',...
'style','text',... 
'string',[str1,sprintf('%1.4g\',z)],... 
'position',[100 120 150 20],...
'backgroundcolor',[0.75 0.75 0.75]);

b1=uicontrol('parent',h0,... 
    'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','关闭',...
'position',[80 50 80 30],...
'backgroundcolor',[0.75 0.75 0.75],... 
'fontsize',15,...
'callback','close');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第5张图片

61. 浏览流体数据

代码

h0=figure('toolbar','none',...
'position',[198 56 450 468],...
'name','实例 61');
h1=axes('parent',h0,... 
    'position',[0.3 0.45 0.5 0.5],...
'visible','off');
[x,y,z,v]=flow;
xmin=min(x(:));
ymin=min(y(:));
zmin=min(z(:));
xmax=max(x(:));
ymax=max(y(:));
zmax=max(z(:));
u1=uimenu('parent',h0,...
'tag','u1',...
'label','绘图',...
'Foreground',[0.75 0.75 0.75]);
u11=uimenu('parent',u1,...
'tag','u11',...
'label','绕 X 轴旋转-45 度',...
'Foreground',[0.75 0.75 0.75],... 
'callback',[...
'cla,',... 
'hslice=surf(linspace(xmin,xmax,100),linspace(ymin,ymax,100),zeros(100));,',...
'rotate(hslice,[-1,0,0],-45),',...
'xd=get(hslice,''xdata'');,',...
'yd=get(hslice,''ydata'');,',...
'zd=get(hslice,''zdata'');']); 
u12=uimenu('parent',u1,...
'tag','u12',...
'label','绕 Y 轴旋转-45 度',...
'Foreground',[0.75 0.75 0.75],... 
'callback',[...
'cla,',... 
'hslice=surf(linspace(xmin,xmax,100),linspace(ymin,ymax,100),zeros(100));,',... 
'rotate(hslice,[0,-1,0],-45),',...
'xd=get(hslice,''xdata'');,',...
'yd=get(hslice,''ydata'');,',...
'zd=get(hslice,''zdata'');']);
b1=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b1',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','设置颜色',...
'position',[50 120 60 25],...
'callback',[...
'delete(hslice),',... 
'h=slice(x,y,z,v,xd,yd,zd);,',...
'set(h,''facecolor'',''interp'',''edgecolor'',''none'',''diffusestrength'',0.8)']);
b2=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b2',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','添加切片 1',...
'position',[240 120 60 25],...
'callback',[...
'hold on,',... 
'hx=slice(x,y,z,v,xmax,[],[]);,',...
'set(hx,''facecolor'',''interp'',''edgecolor'',''none'')']);
b3=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b3',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','添加切片 2',...
'position',[240 70 60 20],...
'callback',[...
'hold on,',... 
'hy=slice(x,y,z,v,ymax,[],[]);,',...
'set(hy,''facecolor'',''interp'',''edgecolor'',''none'')']);
b4=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b4',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','添加切片 3',...
'position',[240 20 60 20],...
'callback',[...
'hold on,',... 
'hz=slice(x,y,z,v,zmax-1,[],[]);,',...
'set(hz,''facecolor'',''interp'',''edgecolor'',''none'')']); 
b5=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b5',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','灯光效果',...
'position',[50 70 60 20],...
'callback',[...
'daspect([1 1 1]),',... 
'axis tight,',...
'box on,',...
'view(-38.5,16),',...
'camzoom(1.4),',... 
'camproj perspective,',...
'lightangle(-45,45)']);
b6=uicontrol('parent',h0,...
    'style','pushbutton',...
'units','points',...
'tag','b6',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','colorbar',...
'position',[50 20 60 20],...
'callback','colorbar(''horiz'')');
b7=uicontrol('parent',h0,...
    'style','pushbutton',...
'units','points',...
'tag','b7',...
'Foregroundcolor',[0.75 0.75 0.75],...
'string','关闭',...
'fontsize',14,...
'position',[145 75 60 20],...
'callback','close');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第6张图片

62. 简单计算器

代码

h0=figure('toolbar','none',...
'position',[200 60 220 240],...
'name',' 实 例 62');
b0=uicontrol('parent',h0,...
'units','points',...
'tag','b0',...
'style','pushbutton',...
'string','0',...
'fontsize',12,...
'position',[5 15 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0''&i==0,',...
'errordlg(''数字首位不能为 0''),',... 
'else,',...
'k=[k,''0''];,',...
'if k==''00'',',...
'k=''0'';,',...
'end,',...
'set(e1,''string'',k);,',...
'end']);
b15=uicontrol('parent',h0,...
    'units','points',...
'tag','b15',...
'style','pushbutton',...
'string','=',...
'fontsize',12,...
'position',[45 15 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'k=get(e1,''string'');,',...
'if g==''+'',',...
'm=m+str2num(k);,',...
'end,',...
'if g==''-'',',...
'm=m-str2num(k);,',... 
'end,',...
'if g==''*'',',...
'm=m*str2num(k);,',... 
'end,',...
'if g==''/'',',...
'if k==''0'',',...
'errordlg(''除数不能为 0'');,',... 
'end,',...
'm=m/str2num(k);,',...
'end,',...
'set(e1,''string'',num2str(m));,',... 
'i=0;']);

b11=uicontrol('parent',h0,... 
    'units','points',...
'tag','b11',...
'style','pushbutton',...
'string','+',...
'fontsize',12,...
'position',[85 15 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'i=i+1;,',...
'if i==1,',...
'm=str2num(k);,',...
'set(e1,''string'',''0'');,',... 
'end,',...
'if i>1,',...
'k=get(e1,''string'');,',...
'if g==''+'',',...
'm=m+str2num(k);,',...
'end,',...
'if g==''-'',',...
'm=m-str2num(k);,',... 
'end,',...
'if g==''*'',',...
'm=m*str2num(k);,',... 
'end,',...
'if g==''/'',',...
'if k==''0'',',...
'errordlg(''除数不能为 0'');,',...
'end,',...
'm=m/str2num(k);,',... 
'end,',...
'set(e1,''string'',num2str(m));,',... 
'i=1;,',...
'end,',... 
'k=''0'';,',...
'g=''+'';']);
b16=uicontrol('parent',h0,... 
    'units','points',...
'tag','b16',...
'style','pushbutton',...
'string','关闭',...
'fontsize',12,...
'position',[125 15 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback','close'); b1=uicontrol('parent',h0,... 
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','1',...
'fontsize',12,...
'position',[5 45 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... 
'k=[k,''1''];,',...
'set(e1,''string'',k);']); 
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','2',...
'fontsize',12,...
'position',[45 45 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0'',',...
'k='''';,',... 
'end,',...
'k=[k,''2''];,',...
'set(e1,''string'',k);']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','3',...
'fontsize',12,...
'position',[85 45 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... 
'k=[k,''3''];,',...
'set(e1,''string'',k);']);
b14=uicontrol('parent',h0,...
'units','points',...
'tag','b14',...
'style','pushbutton',...
'string','/',...
'fontsize',12,...
'position',[125 45 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'i=i+1;,',...
'if i==1,',...
'm=str2num(k);,',...
'set(e1,''string'',''0'');,',...
'end,',...
'if i>1,',...
'k=get(e1,''string'');,',...
'if k==''0'',',...
'errordlg(''除数不能为 0'');,',... 
'end,',...
'if ~(k==''0''),',...
'if g==''+'',',...
'm=m+str2num(k);,',...
'end,',...
'if g==''-'',',...
'm=m-str2num(k);,',...
'end,',...
'if g==''*'',',...
'm=m*str2num(k);,',... 
'end,',...
'if g==''/'',',...
'm=m/str2num(k);,',... 
'end,',...
'set(e1,''string'',num2str(m));,',...
'end,',...
'i=1;,',...
'end,',...
'k=''0'';,',...
'g=''/'';']);
b4=uicontrol('parent',h0,...
    'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','4',...
'fontsize',12,...
'position',[5 75 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... '
'k=[k,''4''];,',...
'set(e1,''string'',k);']); 
b5=uicontrol('parent',h0,...
'units','points',...
'tag','b5',...
'style','pushbutton',...
'string','5',...
'fontsize',12,...
'position',[45 75 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... 
'k=[k,''5''];,',...
'set(e1,''string'',k);']); 
b6=uicontrol('parent',h0,...
'units','points',...
'tag','b6',...
'style','pushbutton',...
'string','6',...
'fontsize',12,...
'position',[85 75 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',...
'k=[k,''6''];,',...
'set(e1,''string'',k);']);
b13=uicontrol('parent',h0,...
'units','points',...
'tag','b13',...
'style','pushbutton',...
'string','*',...
'fontsize',12,...
'position',[125 75 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'i=i+1;,',...
'if i==1,',...
'm=str2num(k);,',... 
'set(e1,''string'',''0'');,',...
'end,',...
'if i>1,',...
'k=get(e1,''string'');,',...
'if g==''+'',',...
'm=m+str2num(k);,',... 
'end,',...
'if g==''-'',',...
'm=m-str2num(k);,',... 
'end,',...
'if g==''*'',',...
'm=m*str2num(k);,',... 
'end,',...
'if g==''/'',',...
'if k==''0'',',...
'errordlg(''除数不能为 0'');,',...
'end,',...
'm=m/str2num(k);,',... 
'end,',...
'set(e1,''string'',num2str(m));,',... 
'i=1;,',...
'end,',... 
'k=''0'';,',...
'g=''*'';']);
b7=uicontrol('parent',h0,... 
    'units','points',...
'tag','b7',...
'style','pushbutton',...
'string','7',...
'fontsize',12,...
'position',[5 105 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0'',',...
'k='''';,',... 
'end,',... 
'k=[k,''7''];,',...
'set(e1,''string'',k);']);
b8=uicontrol('parent',h0,...
'units','points',...
'tag','b8',...
'style','pushbutton',...
'string','8',...
'fontsize',12,...
'position',[45 105 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... 
'k=[k,''8''];,',...
'set(e1,''string'',k);']); 
b9=uicontrol('parent',h0,...
'units','points',...
'tag','b9',...
'style','pushbutton',...
'string','9',...
'fontsize',12,...
'position',[85 105 35 20],...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'if k==''0'',',...
'k='''';,',...
'end,',... 
'k=[k,''9''];,',...
'set(e1,''string'',k);']); 
b12=uicontrol('parent',h0,...
'units','points',...
'tag','b12',...
'style','pushbutton',...
'string','-',... 
'fontsize',12,...
'position',[125 105 35 20],...
'backgroundcolor',[0.75 0.75 0.75],... 
'callback',[...
'i=i+1;,',...
'if i==1,',...
'm=str2num(k);,',...
'set(e1,''string'',''0'');,',...
'end,',...
'if i>1,',...
'k=get(e1,''string'');,',...
'if g==''+'',',...
'm=m+str2num(k);,',...
'end,',...
'if g==''-'',',...
'm=m-str2num(k);,',...
'end,',...
'if g==''*'',',...
'm=m*str2num(k);,',... 
'end,',...
'if g==''/'',',...
'if k==''0'',',...
'errordlg(''除数不能为 0'');,',... 
'end,',...
'm=m/str2num(k);,',...
'end,',...
'set(e1,''string'',num2str(m));,',...
'i=1;,',...
'end,',... 
'k=''0'';,',...
'g=''-'';']);
e1=uicontrol('parent',h0,...
    'units','points',...
'tag','e1',...
'style','edit',... 
'horizontalalignment','right',... 
'fontsize',12,...
'string','0',...
'position',[45 135 115 20],...
'backgroundcolor',[1 1 1]);
k=get(e1,'string');
i=0; m=0;

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第7张图片

63. 字母统计

代码

h0=figure('toolbar','none',...
'position',[200 150 350 200],...
'name',' 实 例 63'); 
choose=1; 
e1=uicontrol('parent',h0,...
'units','points',...
'tag','e1',...
'style','edit',...
'Foregroundcolor',[1 1 1],...
'min',0,...
'max',2,...
'fontsize',12,...
'horizontalalignment','left',...
'position',[20 20 120 100]);
t1=uicontrol('parent',h0,...
'units','points',...
'tag','t1',...
'style','text',...
'string','请输入字母(大小写皆可):',...
'fontsize',10,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[20 125 120 15]); 
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','开始统计',...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[180 100 60 20],...
'callback',[...
's=get(e1,''string'');,',...
'n=length(s);,',...
'jb=0;,',...
'jl=0;,',...
'for i=1:n,',...
'if (abs(s(i))>64)&(abs(s(i))<91),',... 
'jb=jb+1;,',...
'end,',...
'if (abs(s(i))>96)&(abs(s(i))<123),',... 
'jl=jl+1;,',...
'end,',...
'end,',...
'j=jb+jl;,',...
'if choose==1,',...
'msgbox([''共有字母'',num2str(j),''个!'',''其中大写字母'',num2str(jb),''个!''],''统计结果''),',...
'end,',...
'if choose==2,',...
'msgbox([''共有字母'',num2str(j),''个!'',''其中小写字母'',num2str(jl),''个!''],''统计结果'');,',...
'end']);
u1=uimenu('parent',h0,...
'label','字母分类',...
'Foregroundcolor',[0.75 0.75 0.75],... 
'tag','u1');
u11=uimenu('parent',u1,...
'label','大写字母',...
'Foregroundcolor',[0.75 0.75 0.75],...
'tag','u11',...
'checked','on',...
'callback',[...
'set(u11,''checked'',''on'');,',...
'set(u12,''checked'',''off'');,',... 
'choose=1;']);
u12=uimenu('parent',u1,...
'label','小写字母',...
'Foregroundcolor',[0.75 0.75 0.75],...
'tag','u12',...
'callback',[...
'set(u12,''checked'',''on'');,',...
'set(u11,''checked'',''off'');,',...
'choose=2;']);
b2=uicontrol('parent',h0,...
    'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','清除',...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[180 60 60 20],... 
'callback','set(e1,''string'','''')');
b3=uicontrol('parent',h0,... 
    'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','关闭',...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[180 20 60 20],...
'callback','close');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第8张图片

64. 时间窗口

代码

h0=figure('toolbar','none',...
'position',[200 150 300 150],...
'name',' 实 例 64'); 
now=fix(clock); 
e1=uicontrol('parent',h0,...
'units','points',...
'tag','e1',...
'style','edit',...
'backgroundcolor',[1 1 1],...
'horizontal','right',...
'fontsize',12,...
'position',[20 80 30 20],...
'string',num2str(now(1))); 
t1=uicontrol('parent',h0,...
'units','points',...
'tag','t1',...
'style','text',...
'string','年',...
'backgroundcolor',[0.75 0.75 0.75],... 
'fontsize',14,...
'position',[55 80 20 20]); 
e2=uicontrol('parent',h0,...
'units','points',...
'tag','e2',...
'style','edit',...
'backgroundcolor',[1 1 1],...
'horizontal','right',...
'fontsize',12,...
'position',[80 80 30 20],...
'string',num2str(now(2))); 
t2=uicontrol('parent',h0,...
'units','points',...
'tag','t2',...
'style','text',...
'string','月',...
'backgroundcolor',[0.75 0.75 0.75],... 
'fontsize',14,...
'position',[115 80 20 20]);
e3=uicontrol('parent',h0,...
'units','points',...
'tag','e3',...
'style','edit',...
'horizontal','right',...
'backgroundcolor',[1 1 1],...
'fontsize',12,...
'position',[140 80 30 20],...
'string',num2str(now(3))); 
t3=uicontrol('parent',h0,...
'units','points',...
'tag','t3',...
'style','text',...
'string','日',...
'backgroundcolor',[0.75 0.75 0.75],... 
'fontsize',14,...
'position',[175 80 20 20]);
e4=uicontrol('parent',h0,...
    'units','points',...
'tag','e4',...
'style','edit',...
'backgroundcolor',[1 1 1],...
'horizontal','right',...
'fontsize',12,...
'position',[20 30 100 20],... 
'string',[num2str(now(4)),':',num2str(now(5)),':',num2str(now(6))]);
b1=uicontrol('parent',h0,... 
    'units','points',...
'tag','b1',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','关闭',...
'fontsize',12,...
'position',[150 30 50 20],...
'callback',[...
'k=1;,',...
'close']);
k=0;
while find(get(0,'children'))== h0
    now1=fix(clock);
    set(e1,'string',num2str(now1(1)));
    set(e2,'string',num2str(now1(2)));
    set(e3,'string',num2str(now1(3))); 
    set(e4,'string',[num2str(now1(4)),':',num2str(now1(5)),':',num2str(now1(6))]);
    pause(1);
    
    if k==1
        break;
    end
end

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第9张图片

65. 时间计算器

代码

h0=figure('toolbar','none',...
'position',[200 150 300 250],...
'name','实例 65'); 
huidiao=[...
'k=0;,',...
'fyear=str2num(get(e1,''string''));,',...
'fmonth=str2num(get(e2,''string''));,',...
'fday=str2num(get(e3,''string''));,',...
'syear=str2num(get(e4,''string''));,',...
'smonth=str2num(get(e5,''string''));,',...
'sday=str2num(get(e6,''string''));,',...
'month=[0 31 28 31 30 31 30 31 31 30 31 30 31];,',...
'k=fix(fyear/4);,',...
'if rem(fyear,4)==0,',...
'month(3)=29;,',...
'else,',...
'k=k+1;,',...
'month(3)=28;,',... 
'end,',...
'sum=0;,',...
'for i=1:fmonth,',...
'sum=sum+month(i);,',... 
'end,',...
'fdday=fyear*365+sum+fday+k;,',... 
'l=fix(syear/4);,',...
'if rem(syear,4)==0,',...
'month(3)=29;,',...
'else,',...
'l=l+1;,',...
'month(3)=28;,',...
'end,',...
'ssum=0;,',...
'for i=1:smonth,',...
'ssum=ssum+month(i);,',... 
'end,',...
'sdday=syear*365+ssum+sday+l;,',...
'dday=abs(fdday-sdday);,',... 
'set(e7,''string'',[num2str(dday),''天'']);'];
t0=uicontrol('parent',h0,...
    'units','points',...
'tag','t0',...
'style','text',...
'string',' 开 始 日 期 :',... 
'horizontalalignment','right',...
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[10 160 80 20]); 
t8=uicontrol('parent',h0,...
'units','points',...
'tag','t8',...
'style','text',...
'string',' 结 束 日 期 :',... 
'horizontalalignment','right',... 
'fontsize',15,...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[115 160 80 20]); 
e1=uicontrol('parent',h0,...
'units','points',...
'tag','e1',...
'style','edit',... 
'horizontalalignment','right',... 
'Foregroundcolor',[1 1 1],...
'position',[20 130 50 20]);
t1=uicontrol('parent',h0,...
'units','points',...
'tag','t1',...
'style','text',...
'string',' 年 ',... 
'horizontalalignment','left',...
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[75 130 20 20]); 
e2=uicontrol('parent',h0,...
'units','points',...
'tag','e2',...
'style','edit',... 
'horizontalalignment','right',... 
'Foregroundcolor',[1 1 1],...
'position',[20 100 50 20]); 
t2=uicontrol('parent',h0,...
'units','points',...
'tag','t2',...
'style','text',...
'string',' 月 ',... 
'horizontalalignment','left',... 
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[75 100 20 20]); 
e3=uicontrol('parent',h0,...
'units','points',...
'tag','e3',...
'style','edit',... 
'horizontalalignment','right',...
'Foregroundcolor',[1 1 1],...
'position',[20 70 50 20]);
t3=uicontrol('parent',h0,...
'units','points',...
'tag','t3',...
'style','text',...
'string',' 日 ',... 
'horizontalalignment','left',... 
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[75 70 20 20]); 
e4=uicontrol('parent',h0,...
'units','points',...
'tag','e4',...
'style','edit',... 
'horizontalalignment','right',... 
'Foregroundcolor',[1 1 1],...
'position',[120 130 50 20]); 
t4=uicontrol('parent',h0,...
'units','points',...
'tag','t4',...
'style','text',...
'string',' 年 ',... 
'horizontalalignment','left',... 
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[175 130 20 20]); 
e5=uicontrol('parent',h0,...
'units','points',...
'tag','e5',...
'style','edit',... 
'horizontalalignment','right',... 
'Foregroundcolor',[1 1 1],...
'position',[120 100 50 20]); 
t5=uicontrol('parent',h0,...
'units','points',...
'tag','t5',...
'style','text',...
'string',' 月 ',... 
'horizontalalignment','left',... 
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[175 100 20 20]);
e6=uicontrol('parent',h0,...
'units','points',...
'tag','e6',...
'style','edit',...
'horizontalalignment','right',... 
'Foregroundcolor',[1 1 1],...
'position',[120 70 50 20]); 
t6=uicontrol('parent',h0,...
'units','points',...
'tag','t6',...
'style','text',...
'string',' 日 ',... 
'horizontalalignment','left',... 
'fontsize',15,...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[175 70 20 20]); 
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','计算日期',...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[20 40 50 20],... 
'callback',huidiao);
b2=uicontrol('parent',h0,... 
    'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','关闭',...
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[20 10 50 20],...
'callback','close');
e7=uicontrol('parent',h0,... 
    'units','points',...
'tag','e7',...
'style','edit',...
'horizontalalignment','right',...
'Foregroundcolor',[1 1 1],...
'position',[120 10 80 20]);
t7=uicontrol('parent',h0,...
'units','points',...
'tag','t7',...
'style','text',...
'string',' 两 个 日 期 相 差 :',... 
'horizontalalignment','right',... 
'fontsize',15,... 
'Foregroundcolor',[0.75 0.75 0.75],...
'position',[100 30 110 20]);

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第10张图片

66. 数字操作

代码

h0=figure('toolbar','none',...
'position',[200 150 350 200],...
'name',' 实 例 66');
e1=uicontrol('parent',h0,... 
'units','points',...
'tag','e1',...
'style','edit',...
'backgroundcolor',[1 1 1],...
'position',[20 90 80 20],...
'fontsize',12,... 
'horizontalalignment','right');
e2=uicontrol('parent',h0,...
    'units','points',...
'tag','e2',...
'style','edit',...
'backgroundcolor',[1 1 1],...
'position',[160 90 80 20],...
'fontsize',12,...
'horizontalalignment','right');
t1=uicontrol('parent',h0,...
    'units','points',...
'tag','t1',...
'style','text',...
'string','初始数值(十进制):',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[15 110 90 20],...
'fontsize',12,... 
'horizontalalignment','left');
t2=uicontrol('parent',h0,...
    'units','points',...
'tag','t2',...
'style','text',...
'string','转换结果:',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[155 110 90 20],...
'fontsize',12,... 
'horizontalalignment','left');
b1=uicontrol('parent',h0,...
    'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','二进制',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 50 50 20],...
'callback',[...
'k=get(e1,''string'');,',... 
'k2=str2num(k);,',...
'bk=dec2bin(k2);,',... 
'set(e2,''string'',num2str(bk));']);
b2=uicontrol('parent',h0,...
    'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','清除',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 50 50 20],...
'callback',[...
'set(e1,''string'','''');,',...
'set(e2,''string'','''');']); 
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','十六进制',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 15 50 20],...
'callback',[...
'k=get(e1,''string'');,',... 
'k3=str2num(k);,',...
'hk=dec2hex(k3);,',... 
'set(e2,''string'',num2str(hk));']);
b4=uicontrol('parent',h0,...
    'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','关闭',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 15 50 20],...
'callback','close');

效果
【MATLAB100个实用小技巧】——界面设计(56-66)_第11张图片

你可能感兴趣的:(MATLAB100个编程小技巧,matlab,图像处理,开发语言)