【www.myl5520.com--教学设计】
Matlab的gui界面设计实例练习
篇一:matlab,gui设计界面实例点击按钮打开另一个界面
一个不错的Matlab的gui界面设计实例
%非常漂亮的日历,
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
计算万年历的Matlab程序(2008-12-21 13:59:19)
标签:matlab 万年历 杂谈
function test_calendar(year,month)
% 输入年份,月份,打印这个月的月历
run = 0;
ping = 0;
fprintf('\n%s %s %s %s %s %s %s\n',...
'日','一','二','三','四','五','六');
% 计算从第一年到前一年的闰年和平年的个数
for i =1:year-1
if (mod(i,4)==0 & mod(i,100)~=0) | mod(i,400)==0
run = run+1;
else 分类:Matlab实例
ping = ping+1;
end
endmatlab,gui设计界面实例点击按钮打开另一个界面。
% 计算从第一年到当年前一个月的天数
sum = 366*run+365*ping;
for i = 1:month-1
sum = sum+monthday(year,i);
end
% 获得这个月的天数
n = monthday(year,month);
temp = zeros(n,1);
sum = sum+1;
% 计算这个月第一天是星期几
wkd = mod(sum,7);
for i = 1:n
temp(wkd+i) = i;
end
l = 1;
m = 1;
% 打印日历
for i = 1:length(temp)
if temp(i) ==0
temp2(l,m) = ' ';
fprintf(' ');
m = m+1;
else
temp2(l,m) = temp(i);
if temp(i) >= 10
fprintf('%d ',temp(i));
else
fprintf('%d ',temp(i));
end
m = m+1;
end
if mod(i,7)==0
fprintf('\n');
m = 1;
l = l+1;
end
end
fprintf('\n');
% 闰年和平年每月的天数
function out = monthday(year,i)
if mod(year,4)==0 & mod(year,100)~=0 | mod(year,400)==0matlab,gui设计界面实例点击按钮打开另一个界面。
data = [31 29 31 30 31 30 31 31 30 31 30 31];
else
data = [31 28 31 30 31 30 31 31 30 31 30 31];
end
out = data(i);
举例:
输入:
>> test_calendar(2008,12)
返回:
日 一 二 三 四 五 六
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
闲来无事,学了一些Matlab GUI的基础知识,想找个东西练一下手。看中了windows的日期与时间显示面板,于是依葫芦画瓢,用Matlab 做了一个,嘿嘿,觉得还挺像模像样的。下面是效果图。
今日进一步完成了农历的计算和显示。
MATLAB GUI入门实例详解,让你轻松掌握GUI
篇二:matlab,gui设计界面实例点击按钮打开另一个界面
Matlab实例讲解 本文档通过一个简单的实例让你学会matlab GUI的制作流程。首先,图形用户界面GUI(Graphical User Interfaces)是一种用户和计算机进行信息交流的工具和方法,由各种图形
对象组成。在这种用户界面下,用户的命令和对程序的控制是通过鼠标等输入设备“选择”各种图形对象来实现的。开发者只需在由软件开发工具自动生成的程序代码中添加自己的运算或控制代码,就可以完成应用程序的设计。
例 建立加法计算器程序
步骤: 1.新建一个
GUI文件:选择Blank GUI(Default)
2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;(+ = 数据1 绿色显示框等都是静态文本框)
布置好各控件以后,就可以来为这些控件编写程序来实现两数相加的功能了。
3.为数据1文本框添加代码
点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。 function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,’String’) returns contents of edit1 as text % str2double(get(hObject,’String’)) returns contents of edit1 as a double
然后在上面这段代码的下面插入如下代码:
%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容 input = str2num(get(hObject,’String’));
%检查输入是否为空. 如果为空,则默认显示为0
if (isempty(input))
set(hObject,’String’,’0’)
end
guidata(hObject, handles);
这段代码使得输入被严格限制,我们不能试图输入一个非数字。
4.为edit2_Callback添加同样一段代码
5.为计算按钮添加代码来实现把数据1和数据2相加的目的。
用3中同样的方法在m文件中找到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)
在上面这段代码后添加以下代码;
a = get(handles.edit1,’String‘);
b = get(handles.edit2,’String‘);
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together
total = str2num(a) + str2num(b);
c = num2str(total);
% need to convert the answer back into String type to display it
set(handles.text1,’String’,c); % text1为静态文本框(最后绿色显示结果的框)的tag guidata(hObject, handles);
程序分析:
a = get(handles.edit1,’String‘); b = get(handles.edit2,’String‘);
上面这行代码把用户输入的数据存入到变量a,变量b中;
% a,b是字符型变量,在计算两者相加之前需把他们转换为数字型
total = str2num(a) + str2num(b);
这段代码实现两数相加
c = num2str(total);
set(handles.text1,’String‘,c);
guidata(hObject, handles);
以上两行代码分别用来更新计算结果文本框和图形对象句柄,一般Callback回调函数都以guidata(hObject, handles);结束以更新数据
一个适于初学者上手的Matlab_GUI编程实例
篇三:matlab,gui设计界面实例点击按钮打开另一个界面
Matlab GUI编程教程(适用于初学者)
一.首先我们新建一个GUI文件:File/New/GUI 如下图所示;
选择Blank GUI(Default)
二.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下
图所示;
布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。
三.我们先为数据1文本框添加代码;
点击上图所示红色方框,选择edit1_Callback,或者是在数据1文本框出右键选择View Callbacks–>Callback
,光标便立刻移到下面这段代码的位置。 1.
2.
3. function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
4.
5.
6. % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double
复制代码
然后在上面这段代码的下面插入如下代码:
1.
2.
3.
4.
5. input = str2num(get(hObject,'String')); %以字符串的形式来存储数据文本框1的内容 if (isempty(input)) set(hObject,'String','0'); %检查输入是否为空. 如果为空或是输入非数字字符,则默认显示为0 end guidata(hObject, handles);
说明复制代码:这段代码使得输入被严格限制,我们不能试图输入一个非数字。
四.为edit2_Callback添加同样一段代码
五. 现在我们为计算按钮添加代码来实现把数据1和数据2相加的目的。
用上面三的同样的方法在m文件中找到pushbutton1_Callback代码段
如下;
1.
2.
3.
4. 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)
复制代码
在上面这段代码后添加以下代码: 1.
2.
3.
4.
5.
6.
7.
8.
9. a = get(handles.edit1,'String'); b = get(handles.edit2,'String'); % a and b are variables of Strings type, and need to be converted % to variables of Number type before they can be added together total = str2num(a) + str2num(b); c = num2str(total); % need to convert the answer back into String type to display it set(handles.text3,'String',c); guidata(hObject, handles);
说明:复制代码
下面我们来对上面这段程序分析一下;
1. a = get(handles.edit1,'String'); b = get(handles.edit2,'String');
上面这行代码把用户输入的数据存入到变量a,变量b中;
% a,b是字符型变量,在计算两者相加之前需把他们转换为数字型
2 . total = str2num(a) + str2num(b);
这段代码实现两数相加c = num2str(total);
3
4 set(handles.text3,'String',c); guidata(hObject, handles);
以上两行代码分别用来更新计算结果文本框和图形对象句柄,一般Callback回调函数都以guidata(hObject, handles);j结束以更新数据
程序运行如下: