您的当前位置:首页MATLAB设计报告

MATLAB设计报告

2021-04-18 来源:世旅网


学院: 班级: 姓名: 学号:

验报 告MATLAB实

绘制离散数据图形

一、设计要求

利用GUI绘制离散数据图形,界面中有数据范围编辑框,数据类型、颜色下拉框,坐标轴,按钮等控件,并有File,Edit菜单项。

二、设计过程

(一)设计思路

根据设计报告中的要求及参考资料可以明白如下:

1、基本界面设计。首先可以大致知道设计GUI图形的界面中需要有数据类型,坐标轴,按钮等一些必要的控件。则在GUI界面窗口中要放置两个按钮、两个面板控制、4个静态文本框、一个文本框、一个滚动条、一个弹出式菜单、一个列表框和一个坐标轴。由这些基本的元件即可构成我的设计报告中的基本的界面。

2、控件属性设置。对上面的基本元件进行属性设置,其中属性的设置包括属性编辑器的最上面显示对象名称的修改,颜色(color)的设置,数值(Value)的设置以及字符串(String)的设置。

3、布局控件及Table顺序编辑器的设置。一个GUI界面的设计需要最后能显示的更整齐,更美观,则需要进行此操作。在进行布局控件的时候,可以打开相应的对齐工具,分为水平排列和垂直排列两部分,可以实现控件的对齐和间隔的设置;Table编辑器的设置同样如此,可以修改创建控件的顺序排列,从而能够让四个控件获得焦点。

3、控件程序的编写。在相应的控件中,我们需要对其控件进行程序的编写。即进入我们所要调用的控件中的回调函数,进行程序的编写。由后续的界面中可知,需要编写的回调函数有滚动条的滑动,窗口函数的打开,按钮的作用,对上述这些功能控件编写程序后,即可显示相应的功能。

4、创建菜单。我们需要创建的菜单有普通式菜单和弹出式菜单两种。普通式菜单中要包含&New、&Open、&Exit;弹出式菜单包括&Show axes、Show panel。创建菜单中需要注意两点:一是要在坐标轴对象“axes1”的”UIContextMenu”属性中选择菜单条“gridbox”,则可以再坐标轴上单击鼠标右键时可以出现其按键“Grid off”;二是同时要显示如此作用,即当界面得到运行后,Show axes被执行后,要显示坐标轴,并且当坐标轴出现后,此命令不可再执行,即变为暗灰色。

5、菜单程序的编写。在我们所要的GUI界面中,要执行相应的菜单指令,那就同样需要对相应的指令进行回调函数的编写。菜单中要编写的回调函数有Show axes的无效显示,窗口函数(Exit)的关闭以及弹出式菜单“Grid on”绘制网格的实现。

6、程序的运行。上述步骤完成后,即可观察设计报告所需要的的结果。

(二)设计方法

1、打开GUI界面

(1)在MATLAB主界面选择菜单“File”中的“New”,即可打开GUI 界面。如图所示:

(2)当打开此页面后,可以点击“Blank GUI(Default)”命令即可以创建一个空白的界面。

(3)a、然后在空白界面中添加两个按钮(pushbutton).两个面板控件(panel)、4个静态文本框(static text)、一个文本框(edit)、一个滚动条(slider)、一个弹出式菜单(popupmenu)、一个列表框(listbox)和一个坐标轴(axes),添加控件后的图如下所示:

b、当这些控件得到设置以后,为了检验制作正确性,可以通过界面中的绿色标志进行运行,如图所示:

2、创建界面

(1)控件的属性设置

控件的属性可以由“Property Inspector”中设置,而打开它的方法有三种:a、双击控件;

b、用鼠标右键单击控件在出现的快捷菜单中选择“Property Inspector”; c、选中控件后在选择菜单“View”,进而选择“Property Inspector”;

在此处为了简单快捷可以由双击控件打开此指令,双击后可打开“Property Inspector”的窗口进行属性设置。窗口显示如图所示:

(2)如何修改属性值

在设置过程中,如果想要修改其属性,只需要在“Property Inspector”z中进行修改即可。例如,若是要修改控件一“static text”的属性值,可以将“String”的值修改为“绘制正弦离散图形”;“fontsieze”的值修改为“20”;“fontweight”的值修改为“blod”。显示图若下所示:

(3)依次设置属性值

a、将其它三个静态文本的属性名(string)的属性值分别设置为散图形”, “曲线类型”,“颜色”;滚动条(slider)的属性名(max)设置为“100”;弹出式菜单(popupmenu)的string值设置为“阶梯图|火柴杆图”;两个按钮(pushbutton)的属性名(string)设置为“画图”和“关闭”,并且字号大小为12px;列表框(listbox1)的属性名(string)的属性值设置为红色|黄色|蓝色|绿色。这些设置步骤即可完成控件的基本设置,即可得到如下图所示:

b、运行后的图如下所示:

(4)对象浏览器窗口

打开对象浏览器窗口的方法有如下三种: a、选择工具栏中相应的按钮;

b、选择菜单“View”中的“Object Browser”;

c、单击鼠标右键在快捷菜单中选择“Object Browser”;

即打开对象浏览器窗口可以通过选择菜单“View”中的“Object Browser”来查看对象,也就是上述中所陈述的第二种方法打开窗口。对象浏览器的作用是在设置完上述控件属性后,为了保证结果的正确性,我们可以通过查看对象浏览器而看到所有的控件对象。

窗口如下所示:

(5)进行布局控件

在创建完控件后,为了使界面布局显得更整齐美观,可以选择菜单‘Tool’中的“Align Objects”和“Grid and Rulers”从而实现控件的对齐和网格的布局。打开对象对齐工具窗口的方法有:

a、选择菜单“Tool”,进而选择“Align Objects”; b、选择工具栏中相对应的按钮;

c、单击鼠标右键在快捷菜单中选择“Align Objects”; 我们选择其中最简单的方法b即可打开对象对齐工具,由下图可以看到设置分为水平排列和垂直排列两个部分,可以实现控件的对齐和间隔的设置。

而“Grid and Rulers”如同对齐控件一样进行设置。

a、选择菜单“Tool”,然后选择“Grid and Rules„”则能进行网格和标尺的设置;

b、选择“Grid Size”,可以在10——200像素之间调整网格间隔,并可以设置是否显示网格。

窗口界面分别如下所示:

(6)设置Tab顺序编辑器

其实设置顺序编辑器只是可以方便的改变控件的顺序,从而让控件获得焦点。 打开编辑器的方法有两种: a、单击工具栏中对应的按钮;

b、选择菜单中“Tool”,然后选择“Tab Order Editor„”; 选用其中的一种方法即可以打开编辑器,窗口界面如图所示:

3、程序的编写

在编写程序时需要用M文件编辑器来输入程序,打开“M-file Editor”的方法有如下四种:

a、用鼠标右键单击控件,在快捷菜单中选择“M-file Editor”;

b、选择“View Callbacks”的下拉菜单项,可直接进入相应的回调函数; c、单击工具栏中对应的按钮;

d、选择菜单“View”,然后进入“M-file Editor”的下拉菜单项。

在上述五种方法中,我选择用鼠标右键单击控件,在快捷菜单中选择“M-file Editor”后,进而选择“View Callbacks”的下拉菜单项,可直接进入相应的回调函数。

(1)Slider的回调函数

如Slider滚动条的回调函数,slider滚动条的当前值改变显示在文本框中,程序代码为:

function slider1_Callback(hObject, eventdata, handles) x=get(hObject,'value');

set(handles.edit1,'string',num2str(x));

现在将此程序代码通过M文件编辑器输入到“M-file Editor”中相应的位置,显示程序如图所示:

(2)打开窗口函数

窗口的OpeningFcn函数是打开窗口时调用的,编辑此程序代码后,就能将打开窗口的窗口名称修改为“绘制曲线“,其程序代码如下:

function sy6_1_OpeningFcn(hObject, eventdata, handles, varargin) set(gcf,'name','绘制曲线') 显示程序如图所示:

(3)按钮的回调函数

在按钮中有“画图“和”关闭“两个按钮,“画图”按钮实现将文本框、弹出式菜单和列表框的值取出,计算并绘出相应的图形,程序代码如图所示:

function pushbutton1_Callback(hObject, eventdata, handles) xmax=str2num(get(handles.edit1,'string')); x=0:0.2:xmax; y=sin(x);

pselect=get(handles.popupmenu1,'value'); lselect=get(handles.listbox1,'value'); switch lselect case 1

lcolor='r';

case 2

lcolor='y'; case 3

lcolor='b'; otherwise lcolor='g'; end

if pselect==1

stairs(x,y,lcolor) else

stem(x,y,lcolor) end

显示程序如图所示:

4、菜单的创建

(1)设计普通菜单

在“Menu Bar”面板设计普通菜单,设计中的普通菜单中包括&File和&View,并在&File的菜单条下创建三个子菜单,分别为&New、&Open、&Exit;在&View的菜单条下创建两个子菜单,分别为&Show axes、Show panel。即只需要将菜单条中的Lable的值分别设置为&New、&Open、&Exit,将Tag的属性值设置为file,new,open,exit即能够完成&File的设置;将菜单条&View的Lable值修改为View,Tag的值修改为view即能够完成&View菜单的设置,从而得到如图:

(2)设计弹出式菜单 首先选中“Context Menus”面板设计弹出式菜单,设计方法同普通菜单相似,将下拉菜单的Lable值修改为Grid on和Box on,其中的Tag值改变为gridon和boxon即可得到这样的界面:

其中比较重要的一点是,弹出式菜单是在坐标轴上单击鼠标右键时出现的,因此必须在坐标轴对象“axes1”的“UIContextMenu”属性中选择菜单条“gridbox”。

(3)编写关于菜单中的程序

a、在单击普通菜单中的“&Show axes“的“Callback”栏后面的“View”按钮,就可以打开M文件编辑器进入相应的菜单项回调函数中,显示窗口中的坐标轴,当坐标轴显示后则该菜单就显示为无效(灰色)。回调函数如下:

function showaxes_Callback(hObject, eventdata, handles) if size(get(handles.axes1,'visible'))==size('off') set(handles.axes1,'visible','on') set(hObject,'enable','off') end

在M-Editor中的显示界面如图所示:

b、在单击普通菜单中的“Exit”实现关闭窗口的功能,回调函数如下:

function exit_Callback(hObject, eventdata, handles) % hObject handle to exit (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close

在M-Editor中的显示界面如图所示:

c、弹出式菜单中的“Grid on”菜单项实现在坐标轴中绘制网格,当坐标轴中有网格时菜单项就显示为“Grid off”回调函数如下:

function gridon_Callback(hObject, eventdata, handles) if size(get(gca,'xgrid'))==size('off') grid on

set(hObject,'lable','Grid off') else

grid off

set(hObject,'lable','Grid on') end

在M-Editor中的显示界面如图所示:

三、设计结果

当以上的步骤全部完成后,即可以进行程序的运行了。运行程序的界面如图所示:

(1)当按键Show axes1后,显示窗口中的坐标轴,并且当坐标轴显示后则该菜单就显示为无效(灰色)。界面如图所示:

(2)当在数据范围中输入值为“10”,曲线类型为“阶梯型”,颜色为“红色”时,图形的显示界面为如下所示:

(3)当在数据范围中输入值为“10”,曲线类型为“火柴杆型”,颜色为“红色”时,图形的显示界面为如下所示:

(3)当在数据范围中输入值为“10”,曲线类型为“火柴杆型”,颜色为“蓝色”时,图形的显示界面为如下所示:

(4)当在数据范围中输入值为“20”,曲线类型为“阶梯型”,颜色为“红色”时,同时显示可以使用右键从而来显示网格的作用,图形的显示界面为如下所示:

(5)当在数据范围中输入值为“20”,曲线类型为“阶梯型”,颜色为“红色”时,同时将上述图形中的右键中“Grid on”点击后,即可以得到相应的图形。显示界面为如下所示:

(6)当在数据范围中输入值为“20”,曲线类型为“火柴杆型”,颜色为“红色”时,同时将上述图形中的右键中“Grid on”点击后,即可以得到相应的图形。显示界面为如下所示:

四、设计报告的小结

1、在设计报告中,我们首先应该了解到设计报告的需求,然后理清一定的

设计思路。

2、在设计过程中,要明确的清楚控件的设置需要,然后进行相应的设置;后面更重要的一点是,当输入控件的回调函数时,一定要输入后直接运行,那样才能找到所犯的错误。若应将所有步骤都设计完成后再运行,那样修改会很麻烦,并且很复杂。

3、控件的布局应该整齐美观,设计报告同样如此,书写设计报告时要注意排版。

因篇幅问题不能全部显示,请点此查看更多更全内容