基于matlab的可视化界面制作.docx

上传人:b****0 文档编号:17255412 上传时间:2023-07-23 格式:DOCX 页数:17 大小:248.33KB
下载 相关 举报
基于matlab的可视化界面制作.docx_第1页
第1页 / 共17页
基于matlab的可视化界面制作.docx_第2页
第2页 / 共17页
基于matlab的可视化界面制作.docx_第3页
第3页 / 共17页
基于matlab的可视化界面制作.docx_第4页
第4页 / 共17页
基于matlab的可视化界面制作.docx_第5页
第5页 / 共17页
基于matlab的可视化界面制作.docx_第6页
第6页 / 共17页
基于matlab的可视化界面制作.docx_第7页
第7页 / 共17页
基于matlab的可视化界面制作.docx_第8页
第8页 / 共17页
基于matlab的可视化界面制作.docx_第9页
第9页 / 共17页
基于matlab的可视化界面制作.docx_第10页
第10页 / 共17页
基于matlab的可视化界面制作.docx_第11页
第11页 / 共17页
基于matlab的可视化界面制作.docx_第12页
第12页 / 共17页
基于matlab的可视化界面制作.docx_第13页
第13页 / 共17页
基于matlab的可视化界面制作.docx_第14页
第14页 / 共17页
基于matlab的可视化界面制作.docx_第15页
第15页 / 共17页
基于matlab的可视化界面制作.docx_第16页
第16页 / 共17页
基于matlab的可视化界面制作.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于matlab的可视化界面制作.docx

《基于matlab的可视化界面制作.docx》由会员分享,可在线阅读,更多相关《基于matlab的可视化界面制作.docx(17页珍藏版)》请在冰点文库上搜索。

基于matlab的可视化界面制作.docx

基于matlab的可视化界面制作

MATLAB可视化设界面计(上)

一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。

这样用户不需要知道应用程序究竟是怎样执行各种命令的,而只需要了解可见界面组件的使用方法用户也不需要知道命令是如何执行,只要通过与界面交互就可以使指定行为得以正确执行。

MATLAB可视化界面的设计,一般有两种方法,一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件),二是通过MATLAB图形用户界面开发环境GUIDE(GraphicalUserInterfaceDevelopmentEnvironment)来形成相应文件。

这里只讲述在GUIDE环境中利用控件实现可视化界面功能,不探讨直接通过编辑脚本文件实现可视化界面的方法。

MATLAB软件GUIDE为用户提供了一个方便高效的集成环境,所有GUI支持的用户控件都集成在这个环境中,并提供界面外观、属性和行为响应方式的设置方法。

GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中,同时自动生成包含GUI初始化和组件界面布局控制代码的M文件,为实现回调函数提供了一个参考框架。

下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用,我们以MATLAB7.0版本为调试环境,如果版本的环境和版本略有不同,但基本思想和方法一致。

为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。

实例要完成的功能如下:

首先运行M文件后,出现一个主画面

当分别点击按钮“螺旋线”、“摆线”、“圆旋转成圆环”和“退出”命令按钮时,分别出现如下列图示的动态、静态的结果。

螺旋线图

摆线图

圆动成环图

退出信息图

下面看具体的操作步骤:

1)启动Matlab并进入GUIDE环境:

在CommandWindow下输入“guide”,进入GUIDE环境。

出现如下图所示的界面(写到这里,发现文字叙述很繁琐,但还得写,要命)。

这里Matlab提供了一个新建空白界面及三个样本界面,它们分别是:

GUIwithUicontrols;GUIwithAxesandMenu;ModalQuestionDialog;当然还有一个标签是用来打开已经编写好的GUI的。

一般来说,我们会用BlankGUI,即空白的界面来写自己的东西。

进入后,Matlab就新建了一个fig文件(默认名是untitled.fig),同时得到如下的编辑窗口:

从上图我们可以看出Matlab的Guide环境可以分为三个部分即菜单栏和工具栏、用户控件集、用户界面编辑窗口。

菜单栏,暂时不作介绍,我们主要使用用户控件集(其它软件一般称为工具箱),用户控件集主要有命令按钮(PushButton)、切换按钮(ToggleButton)、单选按钮(RadioButton)、复选框按钮(Checkbox)、编辑框(EditButton)、静态文本框(StaticButton)

、滚动杆(Slider)、列表框(Listbox)、弹出式菜单(Pop-menu)、坐标轴(Axes)等。

严格地讲,坐标轴不能算控件的畴。

用户界面编辑窗口用于对受控的图形窗口进行编辑,比如添加按钮、静态文本框等。

2)在用户界面编辑窗口添加相应控件(终于可以做具体的事了,这个就简单了,哈哈)

 

MATLAB可视化界面设计(下)

王林方发表于2010-4-211:

12:

00

0

推荐

首先,在用户界面编辑窗口添加4个命令按钮(显示是OK的用个PUSHBUTTON),再如下图所示添加5个静态文本框(StaticText)、5个编辑文本框(EditText)和一个坐标系(Axes)

其次,按下表设置每个控件的属性值(具体操作是:

右击要设置属性的控件——propertyinspector命令——在弹出的属性窗口中找到相应的属性名称——将该属性的值修改成自己需要的值)

控件名

属性

属性修改值

PushButton1

FontSize

16

String

螺旋线

Tag

pushbuttonLxx

PushButton2

FontSize

16

String

摆线

Tag

pushbuttonNBX

PushButton3

FontSize

16

String

圆旋转成圆环

Tag

pushbuttonCtoC

PushButton4

FontSize

16

String

退出

Tag

pushbuttonExit

StaticText1

String

大圆半径

StaticText2

String

小圆半径

StaticText3

String

修正值

StaticText4

String

圆半径

StaticText5

String

离转轴的距离

EditText1

String

空或设置成一个适定值,如10

Tag

editBCR

EditText2

String

空或设置成一个适定值,如2

Tag

editSCR

EditText3

String

空或设置成一个适定值,如1

Tag

editXZZ

EditText4

String

空或设置成一个适定值,如4

Tag

editCR

EditText5

String

空或设置成一个适定值,如10

Tag

editBExit

 

注:

上面控件名称的编号,比如1,2之类,在界面上是没有的,只是我按照从上到下的次序,为方便叙述而编写的。

最后,添加程序(在添加程序前,最好先将文件保存一下,比如以Exp8.m为文件名保存),添加程序的常用方法是:

单击菜单命令view——M-fileEditor,此时,得到下面的程序:

functionvarargout=Exp8(varargin)

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',Exp8_OpeningFcn,...

'gui_OutputFcn',Exp8_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%上面的是系统初始化代码,绝对不要去修改它们。

functionExp8_OpeningFcn(hObject,eventdata,handles,varargin)

handles.output=hObject;

guidata(hObject,handles);

%上面的代码,告诉我们,一般的用户界面的自己设置的初始化状态应添加在这个函数。

functionvarargout=Exp8_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

%上面的函数返回的量直接到命令窗口。

functionpushbuttonLxx_Callback(hObject,eventdata,handles)

%上面的函数是点击螺旋线按钮时,执行的代码,即可以在此处添加有关螺旋线的程序代码。

functionpushbuttonNBX_Callback(hObject,eventdata,handles)

%上面的函数是点击摆线按钮时,执行的代码,即可以在此处添加有关摆线的程序代码。

%---ExecutesonbuttonpressinpushbuttonExit.

functionpushbuttonExit_Callback(hObject,eventdata,handles)

%上面的函数是点击退出按钮时,执行的代码,即可以在此处添加退出时的程序代码。

functioneditBCR_Callback(hObject,eventdata,handles)

%上面的函数是editBCR这个编辑文本按钮回调时,执行的代码。

BigCircleRadial=str2double(get(hObject,'String'));

functioneditBCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editBCR的属性值。

functioneditSCR_Callback(hObject,eventdata,handles)

%上面的函数是editSCR这个编辑文本按钮回调时,执行的代码。

functioneditSCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editSCR的属性值。

functioneditXZZ_Callback(hObject,eventdata,handles)

%上面的函数是editXZZ这个编辑文本按钮回调时,执行的代码。

functioneditXZZ_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editXZZ的属性值。

functionpushbuttonCtoC_Callback(hObject,eventdata,handles)

%上面的函数是点击圆旋转成圆环按钮时,执行的代码,即可以在此处添加圆旋转成圆环时的程序代码。

functioneditCR_Callback(hObject,eventdata,handles)

%上面的函数是editCR这个编辑文本按钮回调时,执行的代码。

functioneditCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editCR的属性值。

functioneditDist_Callback(hObject,eventdata,handles)

functioneditDist_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editDist的属性值。

下面真正添加自己的程序,最后成的程序如下:

自己添加的程序用红色表示。

functionvarargout=Exp8(varargin)

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',Exp8_OpeningFcn,...

'gui_OutputFcn',Exp8_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%上面的是系统初始化代码,绝对不要去修改它们。

functionExp8_OpeningFcn(hObject,eventdata,handles,varargin)

handles.output=hObject;

guidata(hObject,handles);

%这里选择了一个图片文件,作为初始画面,具体的图片可以选择自己喜欢的。

map1=imread('Waterlilies.jpg');

image(map1)

%上面的代码,告诉我们,一般的用户界面的自己设置的初始化状态应添加在这个函数。

functionvarargout=Exp8_OutputFcn(hObject,eventdata,handles)

varargout{1}=handles.output;

%上面的函数返回的量直接到命令窗口。

functionpushbuttonLxx_Callback(hObject,eventdata,handles)

%上面的函数是点击螺旋线按钮时,执行的代码,即可以在此处添加有关螺旋线的程序代码。

axes(handles.axes1)

cla

v=2;

alf=pi/6;

omg=pi/5;

t=0:

0.01:

100;

x=v*sin(alf).*cos(omg*t).*t;

y=v*sin(alf).*sin(omg*t).*t;

z=v*cos(alf).*t;

%plot3(x,y,z)

axis([-100100-1001000160])

gridon

axisequalon

comet3(x,y,z)

%上面的程序是“一质点,沿着已知圆锥面的一条直母线自圆锥的顶点起,作等速直线运动,另一方面这一条母线在圆锥面上,过圆锥的顶点绕圆锥的轴(旋转轴)作等速的转动,这时质点在圆锥面上的轨迹”的动态形成过程。

functionpushbuttonNBX_Callback(hObject,eventdata,handles)

%上面的函数是点击摆线按钮时,执行的代码,即可以在此处添加有关摆线的程序代码。

axes(handles.axes1)

cla

a=str2double(get(handles.editBCR,'String'));

b=str2double(get(handles.editSCR,'String'));

k=str2double(get(handles.editXZZ,'String'));

axis([-a-2a+2-a-2a+20a+2])

line([-a-2,a+2],[0,0]);

holdon

line([0,0],[-a-2,a+2

u=0:

pi/30:

2*pi;

x=a*cos(u);

y=a*sin(u);

plot(x,y)

x=b*cos(u)+a-b;

y=b*sin(u);

plot(x,y)

axisequalon

gridon

theta=0:

pi/1800:

k*a*pi;

x=(a-b)*cos(b/a*theta)+b*cos((a-b)/a*theta);

y=(a-b)*sin(b/a*theta)-b*sin((a-b)/a*theta);

comet(x,y)

%上面的程序是摆线的动态的形成过程

%---ExecutesonbuttonpressinpushbuttonExit.

functionpushbuttonExit_Callback(hObject,eventdata,handles)

%上面的函数是点击退出按钮时,执行的代码,即可以在此处添加退出时的程序代码。

ss=questdlg('你真的要退出吗?

','退出信息窗口!

','不,我还想看看!

','是的,我要退出!

','是的,我要退出!

');

switchss

case'是的,我要退出!

'

delete(handles.figure1);

end

%上面的程序是退出程序时信息窗口

functioneditBCR_Callback(hObject,eventdata,handles)

%上面的函数是editBCR这个编辑文本按钮回调时,执行的代码。

functioneditBCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editBCR的属性值。

functioneditSCR_Callback(hObject,eventdata,handles)

%上面的函数是editSCR这个编辑文本按钮回调时,执行的代码。

functioneditSCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editSCR的属性值。

functioneditXZZ_Callback(hObject,eventdata,handles)

%上面的函数是editXZZ这个编辑文本按钮回调时,执行的代码。

functioneditXZZ_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editXZZ的属性值。

functionpushbuttonCtoC_Callback(hObject,eventdata,handles)

%上面的函数是点击圆旋转成圆环按钮时,执行的代码,即可以在此处添加圆旋转成圆环时的程序代码。

axes(handles.axes1)

cla

%a=4;

%b=10;

a=str2double(get(handles.editCR,'String'));

b=str2double(get(handles.editDist,'String'));

u=0:

pi/30:

2*pi;

y=a.*cos(u)+b;

z=a.*sin(u);

n=length(u);

x=0*ones(1,n);

ifa

axis([-b-2b+2-b-2b+2-a-2a+2])

else

axis([-a-2a+2-a-2a+2-b-2b+2])

end

plot3(x,y,z)

pause

(1)

fort=0:

pi/60:

2*pi

x=y.*sin(t);

y1=y.*cos(t);

plot3(x,y1,z)

pause(0.1)

gridon

holdon

%axisequalon

%view([-20,0])

end

%上面的程序是圆旋转成圆环的动态的形成过程

functioneditCR_Callback(hObject,eventdata,handles)

%上面的函数是editCR这个编辑文本按钮回调时,执行的代码。

functioneditCR_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editCR的属性值。

functioneditDist_Callback(hObject,eventdata,handles)

functioneditDist_CreateFcn(hObject,eventdata,handles)

ifispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%上面的函数用来在程序中设置editDist的属性值。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2