MATLAB图形用户界面开发例子

本文详细介绍了MATLAB GUI的开发,包括使用按钮和文本设计GUI,信号分析仪,图像去噪,用户密码登录框,科学计算器以及画板的制作。通过设置控件属性,编写回调函数,实现了各种功能,例如输入输出处理、绘图和界面交互。
摘要由CSDN通过智能技术生成

一、使用Push Buttion 按钮与静态文本设计GUI,在窗口显示单击按钮次数。

① 在GUI界面上安装一个按钮和一个静态文本。对这两个控件的属性进行简单设置。
在这里插入图片描述
② 设置按钮的回调函数

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
persistent c;
if isempty(c)
    c=0
end
c=c+1;
str=sprintf('Total Clicks: %d',c);
set (handles.text1,'String',str);

保存即可运行。

二、设计一个简单信号分析仪的程序

① 在布局编辑器中布置如下图的控件;
② 设置控件属性如下图所示。主要是设置了string属性和Fontsize属性。
在这里插入图片描述
③ 设置控件的标识Tag。控件的标识用于对各控件的识别。每个控件在创建时都会由开发环境自动产生一个标识,在程序设计中,为了编辑、记忆和维护方便,一般为控件设置一个新的标识。
在本例中,设置两个坐标轴的标识为frequency_axes和time_axes;三个文本标识为f1_input,f2_input,t_input。

④ 进行代码的编写。GUI图形界面,是经过特定的设计思路和计算方法,最终由特定程序实现的一种功能。程序中变量的赋值、输入和输出、计算以及绘图等功能的实现,需要在程序运行前编写相应的代码。

设置对象的初始值:
在f1_input,f2_input,t_input对应的f2_input_CreateFcn()函数之中设置初始值。

set(hObject,'string','20');
set(hObject,'string','20');
 set(hObject,'string','0:0.001:0.5');

为按钮的调用函数编写代码,其放置在按钮的调用函数pushbutton1_Callback()中。(在本例中,所有的代码皆写在了该函数之下,函数功能:读取输入值、对输入值进行处理、画图。所有的功能均放置在按钮的调用函数之中)

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
f1=str2double(get(handles.f1_input,'String'));
f2=str2double(get(handles.f2_input,'String'));
t=eval(get(handles.t_input,'String'));
x=sin(2*pi*f1*t)+sin(2*pi*f2*t);
y=fft(x,512);
m=y.*conj(y)/512;
f=1000*(0:256)/512;
axes(handles.frequency_axes);
plot(f,m(1:257))
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一个不错的Matlabgui界面设计实例 精美日历 function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1; end end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.6,0.66,0.12,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String','clock','fontsize',18,'fontname','times new roman'); Tq=uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.74,0.66,0.17,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman'); sq='The calendar'; uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.14,0.86,0.37,0.08],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',[0.1,0.9,0.9],... 'fontsize',18,'fontname','times new roman','string',sq); try while 1 set(Tq,'String',datestr(now,13)); pause(1); end end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值