精华内容
下载资源
问答
  • 2021-04-23 20:45:43

    第16章 GUIDE工具建立GUI界面 MATLAB可视化界面的设计,一般有两种...

    创建 Matlab GUI 界面通常有两种方式: 1,使用 .m 文件直接动态添加控件 2. 使用 GUIDE 快速的生成 GUI 界面 显然第二种可视化编辑方法算更适合写大型程序。 一......

    第3章数据的可视化 3.1二维绘图 3.2特殊图形和坐标的绘制 3.3MATLAB的图形窗口 3.4基本三维绘图命令 3.1 二维绘图 3.1.1 绘图的一般步骤 1. 曲线数据准备 2......

    一、图形用户界面开发环境(GUIDE) Matlab提供了一套可视化的创建图形窗口的工具,使 用图形用户界面开发环境可方便地创建GUI应用程序,它 可以根据用户设计的GUI布局,......

    第8章 MATLAB图形用户界面设计 8.1 菜单设计 8.2 对话框设计 8.3 可视化图形用户界面设计 8.1 菜单设计 8.1.1 建立用户菜单 要建立用户菜单可用uimenu函数,......

    Matlab提供了一套可视化的创建图形用户接口(GUI) 的工具,包括: ?布局编辑器(Layout Edtor)——在图形窗口中创建及布置 图形对象。布局编辑器是可以启动用户界面的......

    基于Matlab 的数字信号处理... 5页 1财富值 基于MATLAB的_自动控制原理... ...3 运用虚拟实验可视化用户界面分 析双摆 运动 例2如图 3所示, 个摆 长为 f......

    创建 Matlab GUI 界面通常有两种方式: 1,使用 .m 文件直接动态添加控件 2. 使用 GUIDE 快速的生成 GUI 界面 显然第二种可视化编辑方法算更适合写大型程序。 一......

    MATLAB 主要应用于 数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面 设计等。 其中,用户界面设计中,GUI 开发环境是 MATLAB7.3 为设计图形......

    第3章 数据的可视化(Graphics) 3.1 二维绘图 3.2 特殊图形和坐标的绘制 3.3 MATLAB的图形窗口 3.4 基本三维绘图命令 3.1 二维绘图(2-D plotting) 3.1.1 ......

    修改后图形如下: (5)GUI 设计 按书本步骤,设计正弦曲线的 GUI 界面,如下图...第一次接触 Matlab 的可视化设计,面对“提示对话框” 可谓无从入手。后来在网上......

    MATLAB 主要应用于 数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面 设计等。 其中,用户界面设计中,GUI 开发环境是 MATLAB7.3 为设计图形......

    MATLAB-GUI 在图形可视化中的应用 于育民,梁瑛 【摘要】通过对曲面方程和 MATLAB-GUI 界面编程的研究,借助于 Matlab 强大的图形计算和绘制功能,设计图形的可视化......

    常微分方程的符号求解等符号计算; (3) 利用 Matlab 的二维、三维绘图功能,实现图形用户界面 (GUI)中的部分符号计算的可视化,即给出符号计算实例的同时实 现该......

    (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and ......

    可视化;Matlab 语言;流场可视化;软件工具箱 摘要:以Matlab作为工作语言和开发环境,开发了一个在Matlab 平台下的可视化软件工具箱,实现了一般的数据可视化功能,并增加......

    第8章 MATLAB图形用户界面设计 8.1 菜单设计 8.2 对话框设计 8.3 可视化图形用户界面设计 8.1 菜单设计 8.1.1 建立用户菜单 要建立用户菜单可用uimenu函数,......

    7.1 GUI设计工具Guide简介 MATLAB提供了用户图形界面开发程序GUIDE,支 持可视化编辑。 它是一种基于事件或者说是事件驱动的程序(event driven),类似于方便易用的......

    Matlab中设计图形用户界面的方法有两种:使用可视化 的界面环境和通过编写程序。 ? 图形用户界面设计工具的启动 图形用户界面设计工具的启动方式: 1. 命令方式 图形......

    (3) 文字处理功能强大 MATLAB的Notebook为用户提供了强大的文字处理功能,允许用户从 Word访问MATLAB的数值计算和可视化结果。 MATLAB功能和特点 2.人机界面友好,编程......

    更多相关内容
  • Matlab可视化界面设计与控件使用-Matlab可视化界面设计与控件使用.pdf Matlab可视化界面设计与控件使用
  • 基于Matlab可视化界面的单缝衍射仿真分析.pdf
  • 一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就...MATLAB可视化界面的设计, 一般有两种方法,一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前...

    一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。这样用户不需要知道应用程序究竟是怎样执行各种命令的,

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

    MATLAB可视化界面的设计, 一般有两种方法,

    一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件),

    二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development

    Environment)来形成相应文件。这里只讲述在GUIDE环境中利用控件实现可视化界面功能,

    不探讨直接通过编辑脚本文件实现可视化界面的方法。

    MATLAB软件GUIDE为用户提供了一个方便高效的集成环境, 所有GUI支持的用户控件都集成在这个环境中,

    并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中,

    同时自动生成包含GUI初始化和组件界面布局控制代码的M文件, 为实现回调函数提供了一个参考框架。

    下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用, 我们以MATLAB7.0版本为调试环境,

    如果版本的环境和版本略有不同,但基本思想和方法一致。为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。)

    实例要完成的功能如下:

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

    a4c26d1e5885305701be709a3d33442f.png

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

    a4c26d1e5885305701be709a3d33442f.png

    螺旋线图

    a4c26d1e5885305701be709a3d33442f.png

    内摆线图

    a4c26d1e5885305701be709a3d33442f.png

    圆动成环图

    a4c26d1e5885305701be709a3d33442f.png

    退出信息图

    下面看具体的操作步骤:

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

    Window下输入“guide”,进入GUIDE环境。出现如下图所示的界面(写到这里,发现文字叙述很繁琐,但还得写,要命)。这里Matlab提供了一个新建空白界面及三个样本界面,它们分别是:GUI

    with Uicontrols;GUI with Axes and Menu;Modal Question

    Dialog;当然还有一个标签是用来打开已经编写好的GUI的。一般来说,我们会用Blank

    GUI,即空白的界面来写自己的东西。进入后,Matlab就新建了一个fig文件(默认名是untitled.fig),同时得到如下的编辑窗口:

    a4c26d1e5885305701be709a3d33442f.png

    从上图我们可以看出Matlab

    的Guide环境可以分为三个部分即菜单栏和工具栏、用户控件集、用户界面编辑窗口。菜单栏,暂时不作介绍,我们主要使用用户控件集(其它软件一般称为工具箱),用户控件集主要有命令按钮(Push

    Button)、切换按钮(Toggle Button)、单选按钮(Radio

    Button)、复选框按钮(Checkbox)、编辑框(Edit Button)、静态文本框(Static Button)

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

    坐标轴不能算控件的范畴。用户界面编辑窗口用于对受控的图形窗口进行编辑, 比如添加按钮、静态文本框等。

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

    展开全文
  • 一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就...MATLAB可视化界面的设计, 一般有两种方法,一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前...

    一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。这样用户不需要知道应用程序究竟是怎样执行各种命令的,

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

    MATLAB可视化界面的设计, 一般有两种方法,

    一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件),

    二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development

    Environment)来形成相应文件。这里只讲述在GUIDE环境中利用控件实现可视化界面功能,

    不探讨直接通过编辑脚本文件实现可视化界面的方法。

    MATLAB软件GUIDE为用户提供了一个方便高效的集成环境, 所有GUI支持的用户控件都集成在这个环境中,

    并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中,

    同时自动生成包含GUI初始化和组件界面布局控制代码的M文件, 为实现回调函数提供了一个参考框架。

    下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用, 我们以MATLAB7.0版本为调试环境,

    如果版本的环境和版本略有不同,但基本思想和方法一致。为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。)

    实例要完成的功能如下:

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

    a4c26d1e5885305701be709a3d33442f.png

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

    a4c26d1e5885305701be709a3d33442f.png

    螺旋线图

    a4c26d1e5885305701be709a3d33442f.png

    内摆线图

    a4c26d1e5885305701be709a3d33442f.png

    圆动成环图

    a4c26d1e5885305701be709a3d33442f.png

    退出信息图

    下面看具体的操作步骤:

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

    Window下输入“guide”,进入GUIDE环境。出现如下图所示的界面(写到这里,发现文字叙述很繁琐,但还得写,要命)。这里Matlab提供了一个新建空白界面及三个样本界面,它们分别是:GUI

    with Uicontrols;GUI with Axes and Menu;Modal Question

    Dialog;当然还有一个标签是用来打开已经编写好的GUI的。一般来说,我们会用Blank

    GUI,即空白的界面来写自己的东西。进入后,Matlab就新建了一个fig文件(默认名是untitled.fig),同时得到如下的编辑窗口:

    a4c26d1e5885305701be709a3d33442f.png

    从上图我们可以看出Matlab

    的Guide环境可以分为三个部分即菜单栏和工具栏、用户控件集、用户界面编辑窗口。菜单栏,暂时不作介绍,我们主要使用用户控件集(其它软件一般称为工具箱),用户控件集主要有命令按钮(Push

    Button)、切换按钮(Toggle Button)、单选按钮(Radio

    Button)、复选框按钮(Checkbox)、编辑框(Edit Button)、静态文本框(Static Button)

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

    坐标轴不能算控件的范畴。用户界面编辑窗口用于对受控的图形窗口进行编辑, 比如添加按钮、静态文本框等。

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

    展开全文
  • 教您如何使用MATLAB进行界面编辑,使用MATLAB也可以设计出很好看的界面
  • matlab设计GUI可视化界面全方位解析

    万次阅读 多人点赞 2020-06-03 00:32:10
    如何使用matlab设计GUI及导出一、GUI的基础知识开始生成GUI界面回调函数Handles结构体GUI中的参数传递二、控件介绍一、普通按钮二、可编辑文本(edit)和静态文本(text)三、单选框(radiobutton)和复选框...

    一、GUI的基础知识

    GUI指的是图形化用户界面,广泛用在各种程序的上位机,能够通过简单的操作和按钮就可以调用底层代码,方便我们使用和展示结果。写好了底层的代码后我们就可以制作一个GUI界面来打包和展示。

    开始生成GUI界面

    首先打开matlab,在命令行界面输入guide指令就可以出现以下界面,其中有四个备选项,后三个都是一些模板,大家可以自行尝试,我们主要讲空白操作:
    在这里插入图片描述
    生成Blank Gui后会产生一个.fig文件和一个.m文件。.m文件大家都知道,就是matlab的程序文件,在其中写文件。.fig文件是图窗文件。在我们生成一个新的GUI完毕后会生成编辑窗口,这个图窗也可以通过右键点击.fig文件在guide中打开。
    在.m文件中,生成的初始部分我们都不需要修改,当我们在GUI中添加了组件后,.m文件中会生成响应的回调函数,我们只需要编辑回调函数就可以实现相应的操作。这个过程在java生成图形化界面的思想是类似的。GUI的初始文件内容如下:

    function varargout = blankgui(varargin)
    % BLANKGUI MATLAB code for blankgui.fig
    %      BLANKGUI, by itself, creates a new BLANKGUI or raises the existing
    %      singleton*.
    %
    %      H = BLANKGUI returns the handle to a new BLANKGUI or the handle to
    %      the existing singleton*.
    %
    %      BLANKGUI('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in BLANKGUI.M with the given input arguments.
    %
    %      BLANKGUI('Property','Value',...) creates a new BLANKGUI or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before blankgui_OpeningFcn gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to blankgui_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
    
    % Edit the above text to modify the response to help blankgui
    
    % Last Modified by GUIDE v2.5 02-Jun-2020 16:33:33
    
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @blankgui_OpeningFcn, ...
                       'gui_OutputFcn',  @blankgui_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
    
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
    
    
    % --- Executes just before blankgui is made visible.
    function blankgui_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to blankgui (see VARARGIN)
    
    % Choose default command line output for blankgui
    handles.output = hObject;
    
    % Update handles structure
    guidata(hObject, handles);
    
    % UIWAIT makes blankgui wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
    
    
    % --- Outputs from this function are returned to the command line.
    function varargout = blankgui_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    

    生成的代码看起来复杂,但我们只需要注意除了OpeningFcn和OutputFcn其他地方都不要修改就行了。注意,这两个函数在GUI产生的时候会先按顺序执行一遍,然后在检查你是否对控件有操作上述的两个函数是回调函数,那么回调函数是什么意思呢?

    回调函数

    简单介绍,在GUI设计中回调函数就是我们在界面上进行相关操作后需要执行的函数。matlab中的回调函数分为五种:
    1、Callback
    这是最常用的回调函数,比如一个普通按钮,当你按下时,就会调用Callback函数执行,一个文本框,当你输入内容时,就可以执行Callback中的内容,比如要检查内容是否符合格式等等。总之,对一个控件执行默认的操作,Callback就会执行。实现功能,主要就是写在Callback下,当按下这个按钮时我们就可以使matlab开始某种计算然后画图。
    2、CreateFcn
    在显示某个控件之前执行里面的代码,比如某个控件要有先行条件,我们可以在这里面准备好。这个回调较少使用,我也没用过。
    3、DeleteFcn
    在使某个控件消失或关闭之前执行的代码,比如关闭时的自动保存,关闭时的确认是否关闭,都可以放在这里面。
    4、ButtonDowmFcn
    指的是鼠标在这上面点一下后执行的代码。对一个普通按钮就只能按下,Callback会覆盖掉这个函数的内容。对其他的控件,这个回调很多时候也起辅助作用,毕竟对一个可编辑文本框,你点他干啥,文本框就是拿来输入内容的。
    5、KeyPressFcn
    当某个控件被选中获得焦点时执行的代码。什么是焦点,比如你打开两个word,你输入的字只会出现在一个word上,因为此时的焦点在这个word上。

    Handles结构体

    Handles结构体包含了gui中所有对象的属性,包括你建立的控件。使用tag属性来索引每个控件,比如handles.edit1指的就是这个可编辑文本框。Handles可以用来值传递,在一个function中将指存入handles,就可以在另一个function中取出这个值。你可以在后文看见很多使用handles进行值传递操作的例子。

    GUI中的参数传递

    在GUI的.m文件中,参数不像一个可执行文件.m一样可以随意传递,因为GUI的.m文件中是以function的形式写的,参数不能在这些function之间随意传递,现总结以下两种方法:
    1、使用全局变量
    在GUI打开的初始化时,我们定义好全局变量。定义在哪呢?我们刚才提到了初始化.m文件中可编辑的是什么啊?对,就是OpeningFcn和OutputFcn,当我们打开这个fig的时候OpeningFcn中的内容会自动执行,此时我们可以将初始化内容放在这个里面,就比如参数的初始化。
    定义全局变量使用global x,要使用到这个变量时,需要在回调函数中再次声明global x才能使用,这件的好处是简单,但是全局变量的缺点就是一处改处处改,变量得不到保护。
    2、使用guidata和handles结合的方法
    如果在一个控件的回调函数中产生的参数想要传递出去可以这么写,使用这种方法末尾一定要添加guidata()

    handles.X=X;
    handles.Y=Y;
    guidata(hObject, handles);
    

    上述语句将要传出的数据存进了handles结构体中,如果要在另一处调用参数,可以这么写:

    X1=handles.X;
    Y1=handles.Y;
    plot(X1,Y1)
    

    handles结构体也包含了gui控件的所有属性,可以调用和修改。
    总之,在matlab的gui中进行值传递需要有特殊的操作,以下博客给出了更多的方法:https://www.cnblogs.com/jmliao/p/5628521.html

    二、控件介绍

    选择blank后是如下界面:
    在这里插入图片描述

    一、普通按钮

    在这里插入图片描述
    普通按钮功能是作为触发一个事件trigger。点一下就执行Callback中的内容。双击控件我们可以进入配置界面:
    在这里插入图片描述在这里插入图片描述在这里面我们可以设置回调、文字、各种属性。
    我们结合其他的控件来讲button。

    二、可编辑文本(edit)和静态文本(text)

    在这里插入图片描述
    可编辑文本是在运行时输入内容的,比如账号密码。静态文本只起显示内容作用。
    我们结合button来完成一个简单的任务:当我按下button时,读取可编辑文本中的内容到静态文本中显示。

    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)
    txt=get(handles.edit1,'string');
    set(handles.text2,'string',txt);
    

    这里就使用了set和get函数,使用了handles结构体进行值传递,不需要在文本框的回调函数中写任何内容。在这里插入图片描述
    这样我们就可以采集用户给的数据和显示了。另外,上述代码是读取字符的如果想要读取数字的话,需要使用 str2double()处理输出。

    三、单选框(radiobutton)和复选框(checkbox)

    在这里插入图片描述
    根据笔者的观察,单选框和复选框只是外型的不同,要实现选项互斥还是得依靠回调函数代码实现。我们结合文本框来实现加法和乘法选择,复选框用发类似不再赘述。
    实现两个单选框的互斥需要在各自回调函数中操作:
    给出单选框回调函数内容:

    function radiobutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to radiobutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    set(handles.radiobutton1,'value',1);
    set(handles.radiobutton2,'value',0);
    % Hint: get(hObject,'Value') returns toggle state of radiobutton1
    

    一个被选中时将另一个置零。
    给出button回调函数内容:

    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)
    if get(handles.radiobutton1,'value')
        option=1;
    elseif get(handles.radiobutton2,'value')
        option=0;
    end
    num1=str2double(get(handles.edit1,'string'));
    num2=str2double(get(handles.edit2,'string'));
    if option==0
        num=num1+num2;
    else
        num=num1*num2;
    end
    set(handles.text2,'string',num);
    

    结果如下:
    在这里插入图片描述上述就是简单的单选框操作。

    四、弹出式菜单(popupmenu)和列表框(listbox)

    在这里插入图片描述
    弹出式菜但都可以拿来作为选项,那我们怎么写备选项呢?在检查器中找到如下选项:
    在这里插入图片描述在这里插入图片描述
    按照上述格式就是选项。接下来我们完成一个显示小组组长的任务。
    首先我们把一共三个小组输入弹出式菜单:
    在这里插入图片描述
    然后我们把执行的任务写在回调函数中,因为三个小组的组长分别是张三、李四、王五,所以我们需要建立一个字符数组然后对应过来:

    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)
    label=get(handles.popupmenu1,'value');
    name=["张三","李四","王五"];
    set(handles.text2,'string',name(label));
    

    要注意我们从菜单中get到的是索引,不是菜单的字符内容。

    五、坐标区(axes)

    接下来我们讲讲坐标区,是一个非常重要的功能,用于画图。我们可以同时在一个界面上插入多个图窗,然后指定我们在哪个图窗里画图。在button的回调函数中我们可以写上之前在其他地方打包好的处理函数,或者定义数据和函数然后画图。这里我演示一个函数绘制工具,在edit框中写入函数,然后选择在哪个框中画出。首先我们设计button回调函数中读取函数名,然后根据单选框状态画出来。

    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)
    syms x;
    f=get(handles.edit1,'string');
    if get(handles.radiobutton1,'value')
    axes(handles.axes2)
    else 
    axes(handles.axes1) 
    end
    ezplot(f);
    

    在这里插入图片描述
    我们只需要在文本框中输入以x为变量的函数,就可以了,更复杂的操作读者可以自行探索。回调函数的内容怎么写上文已经说明。
    说到这里了,已经介绍了很多的控件操作,剩下的使用较少,希望读者自行探索。

    三、多个GUI界面的交互

    有些时候我们要完成的任务不会只在一个GUI中就能解决,这时需要用到多个GUI的合作和数据交互。

    一、打开另一个GUI

    这个功能主要通过run()实现,我这里举一个简单的例子,当我们按下button时,弹出一个确认框。
    我们先新建一个GUI界面命名为confirm。在其中新建好静态文本和两个button,右下角的黑点可以调整画布大小,使其满足自己的要求:
    在这里插入图片描述之后在前一个GUI的button回调函数中写下run(comfirm),此时我们再按下button时就会弹出我们这个gui界面了,用这个方法可以制作处二级的GUI界面,完成更高级的功能。
    在这里插入图片描述

    二、GUI件参数的传递

    看完了上一部分,此时小伙伴们就要问了,我点是或否没有用啊,因为我们没有设置参数的传递,如果此时你新生成的GUI具有独立的功能,那么你完全可以想创建第一个新的那样来写这个GUI,但如果子GUI是一个界面用于设置父GUI需要的各种参数的话,那你就麻烦了。此时两个GUI产生了交互,那我们应该怎么设置呢?
    我们加大上个问题的难度,先读取父GUI中的分数,然后在子GUI显示,确认后送回父GUI中显示确认的结果。
    当我们在父GUI中按下button时,需要读取文本框中分数的大小,我们先在button的回调函数中写score=get(handles.edit1,'string');用于读取分数并存放在score中,此时我们需要把这个score送入我们的comfirmGUI中,使用out = comfirm(score) 注意此处的out是从子GUI中得到的返回值,score是形参,comfirm换成你自己的子GUI名。所以在button的回调中这么写:

    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)
    score=get(handles.edit1,'string');
    out = comfirm(score) ;
    if out==1
        set(handles.text2,'string',"已确认");
    else
        set(handles.text2,'string',"已否认")
    end
    

    现在我们关注子GUI写法。我们在父GUI中调用了comfirmGUI,此时按下button就会弹出子GUI,我之前讲了,一个GUI的初始化工作是在OpeningFcn中执行的,我们在这个地方取出父GUI传来的分数,handles.in1 = varargin{1};注意,这个varargin和即将出现的varargout是两个大小可变的数组,用来传送输入和输出。所以在子GUI的OpeningFcn中这么写:

    function comfirm_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to comfirm (see VARARGIN)
    handles.in1 = varargin{1};
    set(handles.text3,'string',['确认分数是',handles.in1,'吗?']);
    % Choose default command line output for comfirm
    % Update handles structure
    guidata(hObject, handles);
    uiwait(handles.figure1)
    

    思路是我们得到了varargin传来的数据也就是分数后,显示出来。强调!我在第一部分的时候讲过了,OpeningFcn和OutputFcn是按顺序执行的!我们必须在末尾加上uiwait(handles.figure1)figure1是子GUI的tags,检查器中可以找到。这个语句会让程序停下不再执行OutputFcn,否则一开始输出就确定了那就不需要白费力气了。
    接下来我们看button的回调函数,这个很简单:

    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)
    handles.out1=1;
    guidata(hObject, handles);
    uiresume(handles.figure1)
    

    如果是被按下,则返回1并用handles传出。在button回调函数的结尾必须加上uiresume(handles.figure1)这样才能继续回到我们刚才uiwait的地方继续执行OutputFcn,我们看看它的内容:

    function varargout = comfirm_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Get default command line output from handles structure
    varargout{1} = handles.out1;
    delete(handles.figure1); 
    

    varargout是用于将子GUI内的数据传出的载体,之前已经讲过了与之相对的varargin,就不再多说了。在最后我们要加上delete(handles.figure1);表示执行到这个地方关闭子GUI,其中figure1是子GUI的tags。到这个地方我们就回到了父GUI并得到了下图:
    在这里插入图片描述到这个地方,多个GUI的关联和值传递就差不多了。

    结束语

    笔者水平有限,简单地介绍了一下matlab中GUI的各种操作,这些就像是积木一样,了解了最基本的自己通过学习和努力慢慢搭建高楼大厦就可以了。如有错误,欢迎大家指出。

    展开全文
  • Matlab可视化

    2021-04-25 09:32:26
    Matlab在数据可视化方面提供了强大的功能,可以把数据用二维、三维或思维图形表达出来。 二维平面图形 1.plot函数 plot(Y) 用以绘所对应的行向量Y,若Y为复数,则plot(Y)等于plot(real(Y),image(Y))。 plot(x1,...
  • MATLAB GUI界面设计

    2018-08-17 22:31:31
    MATLAB GUI界面设计,简单易懂,GUI设计比较好,建议学习。
  • Matlab数据可视化编程总结 Matlab上的可视化编程基本上分为三部分–绘制二维图形、绘制三维图形、GUIDE工具 绘制二维图形 二维绘图函数有很多,基本上分为线性图、条形图、填充图、矢量图、放射图、散射图六大类 ...
  • 利用matlab进行图像识别对比,能有可视化界面,可以人工输入两张图,然后再对比。算法我已经有了,现在的算法是利用图片名称进行对比的,结果相当于找不同。就是这个界面不知道如何实现。用GUI就能实现吗?
  • 最近在尝试ViT模型,在可视化输入数据时需要把图片分割成若干部分(patches)。示例图片如下, 代码如下: %% load image uiopen(' earth.jpeg',1) earth_gray = rgb2gray(earth); % 转换成灰度图片 figure;imagesc...
  • 利用MATLAB GUI设计平台,设计多算法雷达一维恒虚警检测CFAR可视化界面,通过选择噪声类型、目标类型、算法类型,手动输入相关参数,可视化显示噪声波形与目标检测的回波-检测门限波形图。 运行cfar.m即可调用GUI...
  • MATLAB可视化技术.rar

    2019-11-22 00:55:41
    Matlab能够轻松地实现二维、三维数据的可视化显示,这种可视化显示是基于GUI技术实现的。...matlab的GUI是一个可视化人机交互界面,很好用,也可以自己编个GUI界面,当然matlab自己带了很多GUI界面,GUI也是图形控件
  • matlab雷达界面代码
  • 关于电力负荷的SVM预测,设计了MATLAB可视化界面,含数据,包含一般SVM,粒子群优化下的SVM,改进粒子群优化下的SVM
  • end 可以让把界面加一张背景图片,看起来好看一点。 实现代码: close all; clear; clc; ha=axes('units','normalized','position',[0,0,1,1]); uistack(ha,'down') II=imread('beijing.jpg'); image(II) colormap ...
  • 基于matlab可视化界面制作.doc
  • 五、MATLAB数据可视化

    千次阅读 2021-11-16 21:55:19
    五、MATLAB数据可视化 声明: 笔记是学习慕课网《科学计算与MATLAB语言》课程和刘卫国主编的《MATLAB程序设计与应用(第3版)》后的个人总结,方便自己以后巩固和复习! 5.1 二维图形 5.1.1、绘制二维曲线的基本...
  • SAT-LAB 是基于 MATLAB 的图形用户界面 (GUI),开发用于模拟和可视化卫星轨道。 SAT-LAB 的主要目的是提供一个具有用户友好界面的软件,可用于学术和科学目的。 卫星状态向量(位置和速度)的计算是使用开普勒传播器...
  • 本设计为基于matlab的人脸识别系统,可读取ORL或者YALE人脸库或者自己的人脸,采用的方法可以通过下拉框形式切换成PCA,KPCA,LDA,K-L,BP神经网络多种方式,计算识别率,也可以调用笔记本自带摄像头进行识别。...
  • 这里推荐Mac用户使用Termius,界面优美,使用简洁,可以直接拖拽文件进行上传。或者使用命令: $ scp currentpath/matlab username@serverip:targetfolder 挂载。 由于我们在服务器使用的是Matlab的镜像文件,...
  • MATLAB工程应用 第7讲 图形可视化(共86页).ppt MATLAB工程应用 第8讲 M文件与程序设计(共67页).ppt MATLAB工程应用 第9讲 图形用户界面GUI(共73页).ppt MATLAB工程应用 第10讲 MATLAB综合应用实例(共53页)....
  • 可视化 图形 界面 软件 可视化 图形 界面 多维图形绘制
  • 基于Matlab的表面等离子体共振可视化界面仿真.pdf
  • 采用了DWT,DCT,LSB,FFT方法的水印程序,有可视化界面MATLAB代码可运行
  • 基于MATLAB倒立摆可视化建模仿真与控制.pdf
  • MATLAB,GUI,神经网络可视化界面

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,698
精华内容 3,879
关键字:

matlab可视化界面

matlab 订阅