精华内容
下载资源
问答
  • stateflow align 实现了三个基本函数来对齐和修改图形 stateflow 对象: 1.对齐所有选定的对象都与选择中的最后一个对象对齐。 因此必须至少选择两个对象。 对特定的对齐线进行对齐。 它们是矩形图形对象的左侧、...
  • 用于与 Allen Brain Observatory 数据集交互的 MATLAB 工具箱 [1]。 Brain Observatory Toolbox (BOT) 提供了一个统一的界面来访问和使用 Visual Coding Neuropixels [2] 和 Visual Coding 2P [3] 数据集。 BOT ...
  • 以前一直觉得matlab GUI很鸡肋,主要是最后界面美化的时候,感觉控件对齐很麻烦,鼠标拖动不好用,对齐的话需要不停的用“对齐对象”,总之,觉得很麻烦。 今年帮别人用matlab GUI做了一个界面,对GUI有了新的认识,...

    以前用过matlab GUI,感觉功能操作比较鸡肋,最后界面美化的时候,控件对齐比较麻烦,鼠标拖动不好用。
    今年帮别人用matlab GUI做了一个界面,对GUI有了新的认识,其实调整多个控件的位置和尺寸,让界面美观工整,有一定技巧在里面,下面我通过一个例子来说明。
    参数输入面板有三个参数输入,用三个静态文本控件和三个动态文本控件组成。如下图所示,他们的位置不整齐,把他们位置调整整齐。
    在这里插入图片描述
    步骤1 :统一控件的外形尺寸。设置三个静态文本控件的FontSize、OuterPosition中x,y属性一致。
    布置2:设置左上角控件的位置。调整tag是“长度”的静态文本框的位置,用鼠标拖动。
    在这里插入图片描述
    步骤3:对齐左侧第一列控件。按住ctrl键,多选中三个静态文本框,选择“工具”–>“对齐对象”。纵向的对齐选“箭头”,分布选左侧第一个,设置间距20像素;横向对齐方式选“左对齐”。操作后,三个静态文本框左对齐,间距相等。
    在这里插入图片描述
    步骤4,对齐第一行控件位置。按住ctrl键,多选中tag是“长度的”静态文本框和tag是“10”的动态文本框,选择“工具”–>“对齐对象”。纵向的对齐选“上对齐”横向对齐方式选“左对齐”,分布选左侧第一个,设置间距10像素;
    在这里插入图片描述
    操作后,第一行控件对齐。
    在这里插入图片描述
    步骤5,对齐左侧第二列控件。按住ctrl键,多选中三个动态文本框,选择“工具”–>“对齐对象”。纵向的对齐选“箭头”,分布选左侧第一个,设置间距20像素;横向对齐方式选“左对齐”。操作后,三个静态文本框左对齐,间距相等。

    在这里插入图片描述
    控件对齐,操作完成。

    展开全文
  • matlabGUI学习笔记1

    千次阅读 多人点赞 2019-07-26 17:06:39
    简要介绍了今后学习matlabGUI的计划,目的是通过阅读Matlab文档学会GUI编程

    matlabGUI设计第一种方式是可以通过命令行输入guide,再上面拖动控件的方式构建GUI;第二种是直接使用脚本编程方式设计GUI。
    最开始我也是使用guide拖动控件的方式设计GUI,直接按照书上或者一些教程的实例去按着步骤编写。在这样学习了两个星期之后发现对于整体参数,数据传递,对象的结构,句柄啊等等一无所知,仅仅是拖动控件,按照例子改写完成一些简单的操作,这不是我想要的结果,所以决定从matlabGUI命令开始,从读matlab帮助文档开始,重新认识GUI。

    首先从函数及其属性开始一个一个看

    函数列表

    首先是最基础最重要的函数 uicontrol

    uicontrol调用格式:

    c = uicontrol %在当前图窗中创建一个普通按钮(默认用户界面控件),并返回 UIControl 对象。如果图窗形不存在,MATLAB会创建一个图窗。

    c = uicontrol(name,value) %创建一个用户界面控件,其中包含使用一个或多个 名称-值 对组参数指定的属性值。例如,‘style’,‘checkbox’会创建一个复选框。

    c = uicontrol(parent) %在指定的父容器中创建默认用户控件,而不是默认当前图窗中。

    c = uicontrol(parent,name,value) %指定用户界面控件的父容器和一个或多个 名称-值 队组参数。

    uicontrol(uc) %将焦点放在指定的用户界面控件上。

    语法并不繁琐,关键在于它属性

    第一,如何调用指定控件

    matlabGUI控件有 ‘pushbutton’,‘togglebutton’,‘checkbox’,‘radiobutton’,‘edit’,‘text’,‘slider’,‘listbox’,‘popupmenu’
    按钮,切换按钮,复选框,单选按钮,可编辑文本,静态文本,滑动条,列表框,弹出式菜单

    调用示例

    c = uicontrol;%默认pushbutton
    c = uicontrol('style','pushbutton');%调用单选按钮
    c = uicontrol('style','checkbox');%调用复选框
    

    第二,如何设置控件属性

    每一个控件均有其内在属性,如名称,大小,位置等等,那么它们以什么符号出现在空间中呢?如何去设定他们的值呢?

    1,Value(当前值)

    切换按钮,复选框,单选按钮,滑动条,列表框,弹出式菜单拥有value这一属性

    调用方式(dot调用)

    c = uicontrol('style','radiobutton');
    val = c.Value;%必须大写
    disp(val);
    

    结果

    按钮没按时Value值
    按下按钮Value值

    从而可以利用查询Value值的方法知道或者改变其状态。

    2,Max (默认1)/ Min(默认0)(可自行设置)

    切换按钮,复选框,单选按钮,滑动条,列表框,可编辑文本拥有这两个属性;
    其中列表框与可编辑文本的意义不在于单独的值,而是Max-Min这一值:

    当 Max – Min > 1 时,编辑文本框接受多行输入。否则,编辑文本框接受单行输入。Max 和 Min 的绝对值不影响可能的行数。只要差异大于 1,则编辑框可以包含任意行数。

    Max 属性值可帮助确定用户是否可同时选择列表框中的多个项目。如果 Max – Min > 1,则用户可以同时选择多个项目。否则,用户不能同时选择多个项目。如果设置 Max 和 Min 属性以允许多个选择,则 Value 属性值可以是索引向量。

    调用方式与Value雷同;
    这里讲一下设置值的方法

    c = uicontrol('style','slider','Min',0,'Max',1);
    c.Max
    c.Min
    

    设置方法1

    c = uicontrol('style','slider');
    c.Max
    set(c,'Max',2);
    c.Max
    

    设置方法2

    3,SliderStep - 滑块控件的步长(默认[0.01 0.10])

    只有slider具有这项属性,指定为数组 [minorstep majorstep]。此属性控制当用户点击箭头按钮或滑块槽(滑块滑道)时滑块值变化的幅度,比较简单,不多赘述。

    4,ListboxTop - 列表框中顶部项的索引(默认1)

    列表框顶部的索引,指定为整数值,仅适用于列表框。此属性指定哪个项目显示在列表框中的最顶部位置,该列表框不够大,无法显示所有列表项。ListboxTop 值是您指定为 String 属性值的数组的索引。ListboxTop 值必须介于 1 和数组中的元素数之间。非整数值固定为下一最小整数。

    5,接下来要讲的属性可以分为一个小类(test and styling)

    5.1,String-要显示的文本

    字符向量
    字符向量元胞数组
    字符串数组
    管道分隔的行向量

    ‘Red’
    {‘Red’,‘Blue’,‘Orange’}
    [“Red” “Blue” “Orange”]
    ‘Red|Blue|Orange’

    在创建控件时声明也好,用set函数也好,均可,这个很简单,在上述所有控件中除了slider没有这一属性外,均可设置string。

    5.2,ForegroundColor - 文本颜色

    [0 0 0] (默认) | RGB 三元组 | ‘r’ | ‘g’ | ‘b’ | …

    5.3,BackgroundColor - 背景色

    [.94 .94 .94] (默认) | RGB 三元组 | ‘r’ | ‘g’ | ‘b’ | …

    5.4,CData - 可选图标

    三维真彩色 RGB 值数组,其值:
    介于 0.0 和 1.0 之间的双精度值
    介于 0 和 255 之间的 uint8 值

    普通按钮和切换按钮是唯一完全支持 CData 的 UIControl 对象。如果为单选按钮或复选框指定 CData 属性,则图像可能与文本重叠。另外,为单选按钮或复选框指定图像会禁用在选择或取消选择它们时显示的功能。

    6,字体

    6.1 FontName
    6.2 FontSize
    6.3 FontWeight
    6.4 FontAngle
    6.5 FontUnits

    这一部分不是那么重要,设置方法如上

    7,interactivity(交互性)(很重要的属性)

    7.1 Visible—用户界面控件可见性

    ‘on’(默认)|‘off’
    当Visible为’off’时,用户界面不可见,但可以查询其属性。
    为使启动更加快速,将最初的控件设置为不可见

    7.2 Enable - 用户界面控件的工作状态

    用户界面控件的工作状态,指定为 ‘on’、‘off’ 或 ‘inactive’。Enable 属性控制用户界面控件是否响应用户交互。

    ‘on’ - 用户界面控件处于工作状态。
    ‘off’ - 用户界面控件未处于工作状态,并且呈灰显。
    ‘inactive’ - 用户界面控件未处于工作状态,但外观与 Enable 设置为 ‘on’ 时相同。

    7.3 Tooltip - 工具提示/TooltipString-工具提示(不推荐)

    指定为字符向量或字符串标量。如果使用此属性,则在运行时当用户将指针悬停在组件上时,将显示消息。禁用组件时,不显示工具提示。

    要创建多行文本,请使用 sprintf 函数在文本中插入换行符 (’\n’)。

    txt = sprintf('Line 1\nLine 2');
    set(text,'TooltipString',txt);
    

    然后将 Tooltip 属性设置为 sprintf 返回的值,即可显示。

    /* 这里我用了tooltip试了一下发现不行,所以用了tooltipstring,但文档说2018b开始就用Tooltip。

    7.4 UIContextMenu-上下文菜单

    空 GraphicsPlaceholder 数组 (默认) | uicontextmenu 对象
    上下文菜单,指定为 ContextMenu 对象。使用此属性可在用户右键点击 UI 组件时显示上下文菜单。使用 uicontextmenu 函数创建上下文菜单。

    uicontextMenu之后再看
    还有几个都是不推荐使用的,也就没必要再写了

    8,位置

    8.1 Position-位置和大小

    位置和大小,指定为 [left bottom width height] 形式的四元素向量。
    left:父容器的内部左边缘与用户界面控件的外部左边缘之间的距离
    bottom:父容器的内部下边缘与用户界面控件的外部下边缘之间的距离
    width:用户界面控件的左右外侧边缘之间的距离
    height:用户界面控件的上下外侧边缘之间的距离

    所有测量值都采用 Units 属性指定的单位。
    Position 值相对于父容器的可绘制区域。可绘制区域是指容器边框内的区域,不包括标题所占的区域。如果父容器是一个图窗,可绘制区域还不包括菜单栏和工具栏。

    设置方法

    b = uicontrol;
    b.Position(3) = 52;
    b.Position
    

    8.2 InnerPosition - 位置和大小

    同上

    8.3 OuterPosition - 位置和大小

    同上

    8.4 Extent - 外围矩形的大小

    外围矩形的大小,以四元素行向量形式返回。向量的前两个元素始终为零。第三和第四个元素分别是矩形的宽度和高度。
    MATLAB 基于 String 属性值的大小和字体特征确定矩形的大小。要调整宽度和高度以适应 String 值的大小,请将 Position 宽度和高度值设置为略大于 Extent 的宽度和高度值。

    8.5 Units - 测量单位

    ‘pixels’ (默认) | ‘normalized’ | ‘inches’ | ‘centimeters’ | ‘points’ | ‘characters’
    单位

    8.6 HorizontalAlignment - uicontrol 文本的对齐方式

    ‘center’ (默认) | ‘left’ | ‘right’
    HorizontalAlignment 属性仅影响 uicontrol 的 ‘text’ 和 ‘edit’ 样式。

    然后就是uicontrol中重中之重的回调了,这一部分再下一篇再写。

    展开全文
  • MATLAB APP设计工具

    千次阅读 多人点赞 2020-06-26 16:19:25
    访问权限四、App设计工具的设计实例1.打开App Designer,添加组件2.利用属性面板设置组件对象的属性3.编写代码,实现组件功能(1)编写自定义函数(2)编写组件对象回调函数4.运行App5.打包App应用思考与实验


    转载于《MATLAB基础与应用教程(第2版)》蔡旭晖 刘卫国 蔡立燕 | 微信读书 链接

    App 设计工具是MATLAB R2016a推出的应用程序设计工具,和GUIDE一样,它也是一个可视化集成设计环境。除了提供和 GUIDE 类似的标准用户界面组件,还提供了和工业应用相关的组件,如仪表盘、旋钮、开关、指示灯等。使用App设计工具可以开发出操作界面友好、可以共享的MATLAB应用模块。

    App 的用户界面的构成要素是组件(Component),它是指可重复使用并且可以和其他对象进行交互的对象,是封装了一个或多个实体程序模块的实体,可以复用。GUIDE设计的用户界面的构成要素是控件,控件是一种特殊的组件,仅用于可视化呈现数据。

    一、 App Designer

    1.打开App Designer

    打开App Designer有两种方法:

    • 在 MATLAB 桌面中,选择“主页”选项卡,单击工具栏的“新建”按钮,从弹出的命令列表中选择“App”下的命令项“App设计工具”,打开App Designer。
    • 在MATLAB命令行窗口输入“appdesigner”命令,打开App Designer。

    2.App Designer窗口

    如图10.10所示,App Designer窗口由快速访问工具栏、功能区和App编辑器组成。
    在这里插入图片描述

    功能区提供了操作文件、打包程序、运行程序、调整用户界面布局、编辑调试程序的工具。功能区的工具栏与快速访问工具栏中的“运行”按钮都可运行当前App。
    App Designer用于用户界面设计和代码编辑,用户界面的设计布局和功能的实现代码都存放在同一个.mlapp文件中。App编辑器包括设计视图和代码视图,选择不同的视图,编辑器窗口的内容也不同。

    (1)设计视图

    设计视图用于编辑用户界面。选择设计视图时,设计器窗口左边是组件库面板,右边是组件浏览器和属性面板,中间区域是用户界面设计区,称为画布。
    组件库提供了构建应用程序用户界面的组件模板,如坐标轴、按钮、仪表盘等。组件浏览器用于查看界面的组织架构,属性面板用于查看和设置组件的外观特性。
    设计视图功能区的第2个选项卡是“画布”。“画布”选项卡中的按钮用于修改用户界面的布局,包括对齐对象、排列对象、调整间距、改变视图显示模式等工具。

    (2)代码视图

    代码视图用于编辑、调试、分析代码。选择代码视图时,设计器窗口左边是代码浏览器和App的布局面板,右边是组件浏览器和属性检查器,中间区域是代码编辑区。
    代码浏览器用于查看和增删图形窗口和控件对象的回调、自定义函数及应用程序的属性,回调定义对象怎样处理信息并响应某事件,属性用于存储回调和自定义函数间共享的数据。代码视图的属性检查器用于查看和设置组件的值、值域、是否可见、是否可用等控制属性。
    代码视图功能区的第2个选项卡是“编辑器”。“编辑器”选项卡有7组按钮,“插入”组按钮用于在代码中插入回调、自定义函数和属性,“导航”组按钮用于在.mlapp文件中快速定位和查找内容,“编辑”组按钮用于增删注释、编辑代码格式。

    二、App组件

    组件对象是构成应用程序用户界面的基本元素,下面介绍这些组件。

    1.组件的种类及作用

    在MATLAB 2017b中,App Designer将组件按功能分成4类。

    • 常用组件:与 GUIDE 中功能相同、外观相似的组件,包括坐标区、按钮、列表框、滑块等。GUIDE 中的“可编辑文本”控件在 App 组件库中分成了分别用于输入数值和文本的两种“编辑字段”组件。
    • 容器类组件:用于将界面上的元素按功能进行分组,包括“面板”和“选项卡组”组件。
    • 图窗工具:用于建立用户界面的菜单,包括“菜单栏”组件。
    • 仪器类组件:用于模拟实际电子设备的操作平台和操作方法,如仪表、旋钮、开关等。
      组件对象可以在设计视图中用组件库中的组件来生成,也可以在代码中调用App组件函数(如uiaxes函数、uibutton函数等)来创建。组件对象所属图形窗口是用uifigure函数来创建的,与在GUIDE中建立的传统图形窗口不同。

    2.组件的属性

    组件对象与控件对象相比,属性较少,常见属性如下。

    Enable属性

    用于控制组件对象是否可用,取值是’On’(默认值)或’Off '。

    Value 属性

    用于获取和设置组件对象的当前值。对于不同类型的组件对象,其意义和可取值是不同的。

    ● 对于数值编辑字段、滑块、微调器、仪表、旋钮对象,Value属性值是数;对于文本编辑字段、分段旋钮对象,Value属性值是是字符串。
    ● 对于下拉框、列表框对象,Value属性值是选中的列表项的值。
    ● 对于复选框、单选按钮、状态按钮对象,当对象处于选中状态时,Value属性值是true;当对象处于未选中状态时,Value属性值是false。
    ● 对于开关对象,当对象位于"On"档位时,Value 属性值是字符串’On’; 当对象位于"Off"档位时,Value属性值是字符串’Off’。

    Limits 属性

    用于获取和设置滑块、微调器、仪表、旋钮等组件对象的值域。属性值是一个二元向量[Lmin,Lmax],Lmin用于指定组件对象的最小值,Lmax用于指定组件对象的最大值。

    Position属性

    用于定义组件对象在界面中的位置和大小,属性值是一个四元向量[x,y,w,h]。x和y分别为组件对象左下角相对于父对象的x、y坐标,w和h分别为组件对象的宽度和高度。

    三、类的定义

    用App Designer设计的应用程序,采用面向对象设计模式,声明对象、定义函数、设置属性和共享数据都封装在一个类中,一个.mlapp 文件就是一个类的定义。
    数据变成了对象的属性(properties),函数变成了对象的方法(methods)。

    1.App类的基本结构

    App类的基本结构如下:

    classdef 类名 <matlab.apps.AppBase
      properties(Access=public)
        ……
      end
      methods(Access=private)
         function 函数1(app,event)
          ……
         end
         function 函数2(app)
          ……
         end
       end
    end
    

    其中,classdef是类的关键字,类名的命名规则与变量的命名规则相同。后面的“<”引导的一串字符表示该类继承于MATLAB的Apps类的子类AppBase。properties段是属性的定义,主要包含属性声明代码。methods段是方法的定义,由若干函数组成。
    App设计工具自动生成一些函数框架。控件对象的回调函数有两个参数,其他函数则大多只有一个参数app。参数app存储了界面中各个成员的数据,event存储事件数据。

    2.访问权限

    存取数据和调用函数称为访问对象成员。对成员的访问有两种权限限定,即私有的(Private)和公共的(Public)。私有成员只允许在本界面中访问,公共成员则可用于与 App 的其他类共享数据。
    在.mlapp文件中,属性的声明、界面的启动函数startupFcn、建立界面组件的函数createComponents,以及其他回调函数,默认是私有的。

    四、App设计工具的设计实例

    下面通过实例,说明App设计工具的具体使用方法。
    【例】 生成一个用于观察视点仰角和坐标轴着色(投影)方式对三维图形显示效果影响的应用程序,界面如下图所示。界面右上部的列表用于选择绘图函数,中间的旋钮用于设置视点,右下部的分段旋钮用于设置坐标轴着色方式。
    [插图]
    操作步骤如下。

    1.打开App Designer,添加组件

    在App Designer窗口左部组件库中选择“坐标区”组件[插图],将其拖曳至设计区,调整好大小和位置。再添加一个列表框、一个切换按钮组、两个旋钮、一个跷板开关和一个分挡旋钮,然后按下图调整组件的位置和大小。
    [插图]将控件对象重新命名。在组件浏览器中选中旋钮对象Knob,然后按F2键,将旋钮对象Knob更名为 Knob_az;或者右键单击旋钮对象,从快捷菜单中选择“重命名”命令项,进行修改。按同样方式,将旋钮对象Knob2更名为Knob_el,将分段旋钮对象Knob3更名为Knob_shading,将切换按钮组 ButtonGroup 中的按钮对象 Button 更名为 surfButton,将按钮对象 Button2更名为meshButton,将按钮对象Button3更名为contour3Button。
    单击工具栏中的“保存”按钮,将设计的图形界面保存为.mlapp 文件。例如,将其存为appdemo0.mlapp。

    2.利用属性面板设置组件对象的属性

    在设计视图的设计区依次选择各个组件对象,在对应的属性面板中按下表设置组件对象的属性。
    [插图]

    3.编写代码,实现组件功能

    (1)编写自定义函数

    编写用于绘制图形的updateplot函数和调整视点的updateview函数。
    ① updateplot函数
    切换到App Designer的代码视图,选择功能区的“编辑器“选项卡,单击工具栏中的“添加函数”按钮,这时,在代码中增加了一个私有函数框架,结构如下:

    function results=func1(app)
    end
    

    也可以在App Designer的代码浏览器选“函数”选项卡,单击“搜索”栏右端的“添加函数”按钮,添加一个私有函数框架。若需要添加公共函数,则单击“添加函数”按钮的展开箭头,从展开的列表中选择“公共函数”。
    将上述函数的名称 func1更改为 updateplot。由于不需要返回值,删去函数头中的字符串“results =”。updateplot函数用于绘制图形,在updateplot函数体加入以下代码:

    %根据在列表框中的选择,确定绘图数据
    switch app.ListBox.Value
      case 'Sinc'
       [x,y]=meshgrid(-8:0.3:8);
       r=sqrt(x.^2+y.^2);
       z=sin(r)./(r+eps);
      case 'Peaks'
       [x,y,z]=peaks;
      case 'Sphere'
       [x,y,z]=sphere;
    end
    %根据在切换按钮组中按下的按钮,确定绘图方法
    switch app.ButtonGroup.SelectedObject
      case app.surfButton
       surf(app.UIAxes,x,y,z)
       app.Knob_shading.Enable='On';
      case app.meshButton
       mesh(app.UIAxes,x,y,z)
       app.Knob_shading.Enable='Off';
      case app.contour3Button
       contour3(app.UIAxes,x,y,z)
       app.Knob_shading.Enable='Off';
    end
    

    ② updateview函数
    按同样方式建立用于更新坐标轴视点的updateview函数框架,然后在updateview函数体加入以下代码:

    el=app.Knob_el.Value;
    az=app.Knob_az.Value;
    view(app.UIAxes,az,el)
    

    (2)编写组件对象回调函数

    ① 为打开用户界面编写响应代码。在设计视图中,右键单击图形窗口空白处,从快捷菜单中选择“回调”下的“添加StartupFcn回调”命令项,这时,将切换到代码视图,并且在代码中增加了StartupFcn函数框架,结构如下:

    % Code that executes after component creation
    function startupFcn(app)
    end
    

    也可以在代码浏览器中,选择“回调”选项卡,单击搜索栏右端的“添加回调函数”按钮,在弹出的“添加回调函数”对话框中选择组件、回调,修改回调函数名(默认名称与回调相同),然后单击“确定”按钮来添加StartupFcn函数框架。要在运行中打开用户界面,使用默认数据和绘图函数绘制图形,则在StartupFcn函数体加入以下代码:

    updateplot(app)
    

    ② 为列表框和切换按钮组编写响应代码。在设计视图中,右键单击列表框对象ListBox,从快捷菜单中选择“回调”下的“添加 ListBoxValueChanged 回调”命令项,这时,将切换到代码视图,并且在代码的methods段中增加了ListBoxValueChanged函数框架,如下所示:

    methods (Access=private)
      %Value changed function: ListBox
      function ListBoxValueChanged(app,event)
      end
    end
    

    当程序运行时,用户在列表框中选择一个绘图数据源,将调用 updateplot 函数绘制图形,因此在ListBoxValueChanged函数体输入以下代码:

    updateplot(app)
    

    单击切换按钮组的某个按钮也将重绘图形,因此按同样方式建立按钮组的回调函数ButtonGroupSelectionChanged,并在函数体中输入以上代码。
    ③ 为旋钮对象编写响应代码。建立用于设置视点方位角的旋钮对象的回调函数 Knob_azValueChanged和设置视点仰角的旋钮对象的回调函数Knob_elValueChanged,并在两个函数的函数体中输入以下代码:

    updateview(app)
    

    ④ 为分段旋钮编写响应代码。分段旋钮用于设置着色方式,建立该对象的回调函数Knob_shadingValueChanged,并在函数体中输入以下代码:

    shading(app.UIAxes,app.Knob_shading.Value)
    

    ⑤ 为跷板开关编写响应代码。跷板开关用于显示/隐藏网格,建立该对象的回调函数SwitchValueChanged,并在函数体中输入以下代码:

    switch app.Switch.Value
      case 'On'
       grid(app.UIAxes,'On');
      case 'Off'
       grid(app.UIAxes,'Off');
    end
    

    4.运行App

    单击App Designer功能区“设计器”选项卡工具栏的“运行”按钮(或单击快速访问工具栏中的“运行”按钮,或按F5键),即可运行程序,打开用户界面。
    在运行窗口中将振幅比调到3,相位差调到90°,白噪声开关拨到“On”,单击“开始”按钮。

    5.打包App应用

    程序运行成功,可以将程序打包为一个MATLAB应用模块。单击App Designer的“设计器”选项卡工具栏中的“App打包”按钮,弹出“应用程序打包”对话框。
    如图10.13所示,在对话框中部“描述您的App”下的应用名称栏输入“SuperpositionofWaves”,在对话框右边的”打包为安装文件“的输出文件夹”栏指定打包文件的输出文件夹。然后单击“打包”按钮。在这里插入图片描述打包完成,对话框左部出现链接“打开输出文件夹“。单击此链接,可以看到在输出文件夹生成了两个文件,即SuperpositionofWaves.prj和SuperpositionofWaves.mlappinstall。
    在MATLAB桌面的“当前文件夹”中找到文件Superposi tionofWaves.mlappinstall,双击这个文件,将弹出图10.14所示“安装”对话框。
    [插图]
    在对话框中单击“安装”按钮进行安装。安装成功后,选择MATLAB桌面的“APP”选项卡,单击工具栏右端的“显示更多”按钮,可以看到应用列表中加入了这个应用模块。此后,在其他MATLAB程序中可以使用这个模块。

    思考与实验

    一、思考题
    1.比较Units属性对度量长度的影响。分别建立两个窗口,第1个窗口用pixels作为度量单位,窗口大小为400×300。第2个窗口使用相对度量单位,窗口宽、高分别为屏幕的40%和30%。
    2.在GUIDE,常用什么属性作为区分控件对象的标识?
    3.分别用GUI函数和用GUIDE工具建立一个图形用户界面,界面中包含一个坐标轴和一个按钮。运行该用户界面,单击按钮,在坐标轴绘制函数 f ( x ) = s i n ( 1 / x ) f(x)=sin(1/x) f(x)=sin(1/x)曲线。比较两种方式的回调函数的定义方法。
    4.分别用GUIDE和App设计工具建立一个应用程序。程序的用户界面中包含一个可编辑文本框(编辑字段)、一个标签和一个按钮。运行该程序,单击按钮,从文本框输入一个实数,在标签输出该数的正弦值。比较两种方式建立用户界面的方法,以及回调函数中获取/设置控件对象属性值的方法。
    二、实验题
    1.设计一个用户界面,其中有一个静态文本对象、一个可编辑文本框,两个复选框和一组单选按钮。在编辑框中输入一个数,单击按钮,可以设置静态文本框中的文字的大小;复选框用于设置文字是否为粗体、倾斜;单选按钮用于设置字体的颜色。
    2.绘制一条阿基米德螺线,创建一个与之相联系的快捷菜单,用以控制曲线的颜色。
    3.设计用户界面,分别从3个可编辑文本框输入参数 a、b 和 n 的值,绘制极坐标函数 ρ = a c o s ( b + n θ ) ρ=acos(b+nθ) ρ=acos(b+nθ)曲线,考察参数对曲线的影响。
    4.用App设计工具建立一个App,App运行界面包含一个坐标轴、一个旋钮、一个分段旋钮和一个按钮。旋钮的值域为[0,5],分段旋钮的值域为[1,4]。运行该 App,在界面单击按钮,从旋钮获取m的值,从分段旋钮获取n的值,在坐标轴绘制下列曲线:

    { x = m s i n t y = n c o s t \begin{cases}x=msint \\ y=ncost \end{cases} {x=msinty=ncost
    t ∈ [ 0 , 2 π ] t\in[0,2\pi] t[0,2π]

    我遇到的问题

    复制代码的时候有红线,提示字符数无效,只需要把红线删掉就行了。
    在这里插入图片描述
    还有一些字母书写错误,改正后成功运行:
    在这里插入图片描述

    展开全文
  • 创建一个具有所需格式/结构的 MATLAB 对象。 cstruct 分析结构,可以从中提取字节,或将字节打包到结构中。 支持各种字节对齐和字节排序选项。 自从我写了这个,我发现它比我想象的更有用,因为我经常处理记录的...
  • Matlab信号处理工具

    千次阅读 2020-01-01 15:36:02
    详见System Identification工具箱 invfreqs 根据频响特性生成模拟滤波器 invfreqz 根据频响特性生成数字滤波器 prony 生成Prony数字滤波器,其冲激响应等于给定的时间序列 ...

    原文地址:http://blog.sina.com.cn/s/blog_701c05820100ns24.html

    滤波器设计与分析:

     

     

     

     

     

     

    滤波器

    分析

     

    abs

    幅度

    angle

    相位

    filternorm

    计算以2或inf为范数的数字滤波器

    freqs

    Laplace变换频率响应

    freqspace

    频率响应步长

    freqz

    z变换频率响应

    fvtool

    滤波器可视化工具

    grpdelay

    群延时

    impz

    离散单位冲激响应

    phasez

    数字滤波器相频特性

    phasedelay

    数字滤波器相位延时

    Unwrap

    纠正相位角产生更为平滑的相位图

    Zerophase

    实滤波器的零极点响应

    Zplane

    离散零极点图

     

     

     

     

     

     

    Filter

    implementation

    conv

    卷积

    conv2

    二维卷积

    convmtx

    卷积矩阵

    deconv

    解卷积

    fftfilt

    基于FFT重叠相加法的FIR滤波器

    filter

    滤波器实现

    filter2

    二维数字滤波

    filtfilt

    零相位数字滤波器

    filtic

    计算直接Ⅱ型滤波器的初始条件

    latcfilt

    Lattice型滤波器的实现

    medfilt1

    一维中值滤波

    sgolayfilt

    Savitzky-Golay滤波器实现

    sosfilt

    二阶节滤波器实现

    upfirdn

    FIR滤波器的过采样和欠采样

    离散时间滤波

    dfilt

    创建离散时间滤波器对象

     

     

     

     

     

    FIR

    滤波器

    设计

    cremez

    具有非线性相位的等波纹FIR滤波器设计

    fir1

    基于窗函数的FIR滤波器——标准响应

    fir2

    基于窗函数的FIR滤波器——任意响应

    fircls

    构建最小平方滤波器,用于多通道滤波器组

    fircls1

    构建最小平方滤波器,用于线性相位FIR低通或高通滤波器

    firgauss

    FIR高斯滤波器滤波器设计

    firls

    最小平方线性相位滤波器设计

    firrcos

    升余弦滤波器设计

    intfilt

    插值FIR滤波器设计

    kaiserord

    利用Kaiser窗为FIR滤波器设计估值

    remez

    计算Parks-McClellan用以优化FIR滤波器设计

    remezord

    Parks-McClellan优化FIR滤波器阶次设计

    sgolay

    Savitzky-Golay型FIR平滑滤波器设计

     

     

    IIR

    滤波器

    设计

    butter

    Butterworth滤波器设计

    cheby1

    ChebyshevⅠ型滤波器设计(通带等波纹)

    cheby2

    ChebyshevⅡ型滤波器设计(阻带等波纹)

    ellip

    椭圆滤波器设计

    maxflat

    数字Butterworth滤波器设计

    yulewalk

    Yule-Walker滤波器设计

     

    IIR

    滤波器

    阶数估计

    buttord

    Butterworth滤波器阶数估计

    cheb1ord

    Chebyshev阶数估计

    cheb2ord

    ChebyshevⅡ型滤波器阶数估计

    ellipord

    椭圆滤波器阶数估计

     

    模拟低通

    滤波器

    原型

    besselap

    Bessel滤波器原型

    buttap

    Butterworth滤波器原型

    cheb1ap

    ChebyshevⅠ型滤波器原型

    cheb2ap

    ChebyshevⅡ型滤波器原型

    ellipap

    椭圆滤波器原型

     

    模拟

    滤波器

    设计

    besself

    Bessel滤波器设计

    butter

    Butterworth滤波器设计

    cheby1

    ChebyshevⅠ型滤波器设计

    cheby2

    ChebyshevⅡ型滤波器设计

    ellip

    椭圆滤波器设计

    模拟

    滤波器

    变换

    lp2bp

    低通→带通

    lp2bs

    低通→带阻

    lp2hp

    低通→高通

    lp2lp

    低通→低通

    滤波器

    离散化

    bilinear

    双线性变换

    impinvar

    冲激响应不变法

           线性系统特性:

     

     

     

     

     

     

     

     

    线性系统变换

    latc2tf

    Lattice梯形结构到传输函数的变换

    polystab

    是多项式具有稳定性

    polyscale

    在z域内计算多项式的根

    residuez

    z变换的留数展开

    sos2ss

    二阶节→状态空间

    sos2tf

    二阶节→传输函数

    sos2zp

    二阶节→零极点

    ss2sos

    状态空间→二阶节

    ss2tf

    状态空间→传输函数

    ss2zp

    状态空间→零极点

    tf2latc

    传输函数→lattice结构

    tf2sos

    传输函数→二阶节

    tf2ss

    传输函数→状态空间

    tf2zpk

    传输函数→零极点

    zp2sos

    零极点→二阶节

    zp2ss

    零极点→状态空间

    zp2tf

    零极点→传输函数

     

     

     

     

     

     

     

     

    窗函数

    bartlett

    Bartlett窗

    barthannwin

    修正的Bartlett-Hanning窗

    blackman

    Blackman窗

    blackmanharris

    最小四项Blackman-Harris窗

    bohmanwin

    Bohman窗

    chebwin

    Chebyshev窗

    flattopwin

    平顶窗

    gausswin

    Guassian窗

    hamming

    汉明窗

    hann

    Hann窗

    kaiser

    Kaiser窗

    nuttallwin

    最小四项Blackman-Harris窗

    parzenwin

    Parzen窗

    rectwin

    矩形窗

    triang

    三角窗

    tukeywin

    Tukey窗

    wvtool

    窗函数可视化工具

    window

    计算特定窗函数

    窗对象

    sinwin

    创建一个窗对象,详见doc sinwin

     

     

     

     

     

     

    信号变换

    bitrevorder

    将输入按位反序排列

    czt

    线性z变换

    dct

    离散余弦变换

    dftmtx

    离散傅里叶变换矩阵

    digitrevorder

    将输入按数字反序排列

    fft

    快速傅里叶变换

    fft2

    二维快速傅里叶变换

    fftshift

    交换向量的上下两部分

    goertzel

    二阶Goertzel代数

    hilbert

    离散时间解析信号的Hilbert变换

    idct

    反离散余弦变换

    ifft

    反快速傅里叶变换

    ifft2

    反二维快速傅里叶变换

           信号处理与谱分析:

     

    倒谱分析

    cceps

    复倒谱分析

    icceps

    复倒谱分析反变换

    rceps

    实倒谱分析

     

     

     

     

     

     

     

     

     

    随机信号处理与功率谱估计

    cohere

    相关函数估计

    corrcoef

    相关系数

    corrmtx

    自相关系数矩阵

    cov

    协方差矩阵

    csd

    互谱密度

    pburg

    通过Burg方法进行功率谱密度估计

    pcov

    通过协方差方法进行功率谱密度估计

    peig

    通过Eigenvector方法进行功率谱密度估计

    periodogram

    通过周期图方法进行功率谱密度估计

    pmcov

    通过改进的协方差方法进行功率谱密度估计

    pmtm

    通过Thomson多个正交窗方法进行功率谱密度估计

    pmusic

    通过MUSIC方法进行功率谱密度估计

    psdplot

    点功率谱密度

    pwelch

    通过Welch方法进行功率谱密度估计

    pyulear

    通过Yule-Walker AR方法进行功率谱密度估计

    rooteig

    通过Eigenvector算法估计正弦频率和功率

    rootmusic

    通过MUSIC算法估计正弦频率和功率

    tfe

    传输函数估计

    xcorr

    互相关函数

    xcorr2

    二维互相关函数

    xcov

    协方差函数

           其他函数:

     

     

     

     

    参数建模

    arburg

    通过Burg方法实现AR参数建模

    arcov

    通过协方差方法实现AR参数建模

    armcov

    通过改进的协方差方法实现AR参数建模

    aryule

    通过Yule-Walker方法实现AR参数建模

    ident

    详见System Identification工具箱

    invfreqs

    根据频响特性生成模拟滤波器

    invfreqz

    根据频响特性生成数字滤波器

    prony

    生成Prony数字滤波器,其冲激响应等于给定的时间序列

    stmcb

    生成IIR滤波器,给定其输入与输出序列

     

     

     

     

     

     

     

    线性预测

    ac2rc

    自相关序列到反射系数的转换

    ac2poly

    自相关序列到预测多项式的转换

    is2rc

    反正弦参数到反射系数的转换

    lar2rc

    对数面积比到反射系数的转换

    levinson

    Levinson-Durbin递归

    lpc

    使用自相关的方法计算线性预测滤波器系数

    lsf2poly

    线谱频率到预测滤波器系数的转换

    poly2ac

    预测多项式→自相关系列

    poly2lsf

    预测多项式→线谱频率

    poly2rc

    预测多项式→反射系数

    rc2ac

    反射系数→自相关序列

    rc2is

    反射系数→正弦参数

    rc2lar

    反射系数→对数面积比参数

    rc2poly

    反射系数→预测滤波器多项式

    rlevinson

    反Levinson-Durbin递归

    schurrc

    Schur算法

     

     

     

    多采样率

    信号处理

    decimate

    减小采样速率并重新采样

    downsample

    将采样速率减少整数倍

    interp

    将采样速率增大整数倍

    interp1

    产生一维插值

    resample

    变换采样速率并重新采样

    spline

    三次样条插值

    upfirdn

    FIR滤波器的过采样和欠采样

    upsample

    对输入信号过采样

     

     

     

     

     

    波形产生

    chirp

    扫频余弦信号

    diric

    Dirichlet(周期sinc)信号

    gauspuls

    高斯射频序列产生器

    gmonopuls

    高斯脉冲序列产生器

    pulstran

    脉冲序列产生器

    rectpuls

    非周期矩形采样信号

    sawtooth

    锯齿波

    sinc

    sinc函数(辛克函数)

    square

    方波

    tripuls

    非周期三角波采样信号

    vco

    压控振荡器

     

     

     

     

     

     

     

     

    特殊操作

    buffer

    信号向量到矩阵形式数据帧的缓冲器

    cell2sos

    单元数组→二阶节矩阵

    cplxpair

    求向量的共轭对

    demod

    通信仿真解调

    dpss

    Slepian序列

    dpssclear

    从数据库中删除Slepian序列

    dpssdir

    删除Slepian序列所在数据库目录

    dpssload

    从数据库中装载删除Slepian序列

    dpsssave

    将删除Slepian序列保存到数据库中

    eqtflength

    对齐离散时间传输函数的长度

    modulate

    通信仿真中的调制

    seqperiod

    寻找向量中长度最小的重复序列

    sos2cell

    二阶节矩阵→单元数组

    specgram

    功率谱

    stem

    绘制离散时间序列

    strips

    带状图

    udecode

    将整数解码得到浮点数

    uencode

    将浮点数均匀量化并编码以得到整数输出

     

     

    图形用户接口

    fdatool

    滤波器设计和分析工具

    fvtool

    滤波器可视化工具

    sptool

    信号处理工具

    wintool

    窗函数设计和分析工具

    wvtool

    窗函数可视化工具

    展开全文
  • MATLAB 第9章 图形对象

    千次阅读 2020-06-29 20:36:15
    MATLAB 的图形是由不同图形对象组成的。 MATLAB 用句柄来标识对象,我们可以通过句柄来访问相应对象的属性。MATLAB R2014b以后的版本采用OpenGL作为默认图形渲染器,加强和扩展了通过图形对象句柄对各种图形对象进行...
  • Matplotlib是Python最著名的绘图库之一,提供了一整套和MATLAB相似的命令API,既适合交互式地进行制图,也可以作为绘图控件方便地嵌入到GUI应用程序中 python -m pip install Matplotlib 三:使用IDLE打开和执行...
  • MATLAB 】信号处理工具

    千次阅读 多人点赞 2018-09-27 16:13:52
    原文地址:信号处理工具箱(MATLAB) 这个总结可以说是一个简洁的信号处理工具大全了,我觉得它的作用是让人开阔眼界,以整体来认识信号处理工具箱。 可以根据里面的内容,查阅matlab的帮助文档,去学习信号处理的...
  • 我们数据库中图像中的对象与3D形状对齐,并且对齐为每个2D对象提供了准确的3D姿态注释和最接近的3D形状注释。 执照 ObjectNet3D是根据MIT许可证发布的(有关详细信息,请参阅LICENSE文件)。 引用ObjectNet3D 如果您...
  • Matlab--Figure界面工具栏使用简要说明

    千次阅读 2019-04-09 16:17:08
    绘图工具栏功能: 填充、边缘颜色、文本颜色、字体、加粗、倾斜、左中右对齐、插入(直线、单向箭头、双向箭头、文本指向性箭头、文本框、矩形、椭圆等)。 图形选项板: 包括子图、变量、注释(与上面绘图工具栏的...
  • 我们数据库中图像中的对象与3D形状对齐,并且对齐为每个2D对象提供了准确的3D姿态注释和最接近的3D形状注释。 执照 ObjectNet3D是根据MIT许可证发布的(有关详细信息,请参阅LICENSE文件)。 引用ObjectNet3D 如果您...
  • MATLAB工作空间中的变量 构造 BiRoad 对象 ConvertADNASequenceToAnRNASequenceExample.m 将 DNA 序列转换成 RNA 序列 ConvertAlignedSequencesToCIGARStringsExample.m 将比对序列转换成 CIGAR 字符串 ...
  • 图像分割综述

    万次阅读 多人点赞 2019-07-09 22:03:48
    此算法的搜索过程不直接作用在变量上,而是在参数集进行了编码的个体,这使得遗传算法可直接对结构对象(图像)进行操作。整个搜索过程是从一组解迭代到另一组解,采用同时处理群体中多个个体的方法,降低了陷入局部...
  • matlab的二维绘图

    万次阅读 多人点赞 2018-11-11 09:47:42
    matlab绘制图形的步骤为: 数据准备:产生自变量采样向量,计算相应的函数值向量。... 利用对象属性值或图形窗口工具栏设置线型、标记类型及其大小等 添加图形注释,例如图名,坐标名称,图例,文字说明等 ...
  • 创建一个窗对象,详见doc sinwin             信号变换 bitrevorder 将输入按位反序排列 czt 线性z变换 dct ...
  • 用法: 下载文件,并在Matlab路径上具有“ zoom_plot.m”。 使用[zoom_utils] = zoom_plot(ax)在父轴ax内创建一组轴。 可以通过zoom_plot(ax,options)传递可选设置。 请参阅示例代码。 可以通过拖放来移动新轴...
  • 关于matlab的图形系统:Matlab图形系统以图形对象为基本单元,图形对象也称图形句柄,句柄可以通过底层函数来精细的进行控制,图形对象系统按树形结构管理。用GUIDE进行建立自己的界面,这点有点类似于VC++的操作,...
  • Matlab学习-图像处理工具箱函数

    千次阅读 2013-11-28 10:22:29
    下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找。 表1 图像显示 函数名 功能说明 函数名 功能说明 colorbar 颜色条显示 montage 按矩形剪辑方式显示多帧...
  • Matlab计算机视觉/图像处理工具箱推荐 2014年4月9日机器学习MATLAB, 计算机视觉luffylee 计算机视觉/图像处理研究中经常要用到Matlab,虽然其自带了图像处理和计算机视觉的许多功能,但是术业有专攻,在进行...
  • 通过TRIM算法在图像上进行初始三角剖分,然后使用梯度下降网格移动方法将三角形网格与图像进一步对齐,以使近似误差最小。 可以在以下位置找到此代码的Windows端口:。 学分 复光镜: 修剪:荣胜CP,GPT Choi,K。...
  • MATLAB中ice函数代码CRIMAC注释工具 该存储库包含工具,可从渔业声学中读取,转换和编写注释。 注释的python表示形式定义为注释结构。 主要目标是拥有以ICES格式定义批注数据结构的测试代码,以及用于读取和写入该...
  • MATLAB之GUI的打开 通过在命令行键入:guide,出现GUI创建开始界面,选择第一项,创建默认空白的GUI界面。 MATLAB之GUI的界面基本介绍 通过文件—>预设—>来设计控件的展示方式。 ③ 查看 主要功能:是否...
  • 带你从零开始,快速学会 Matlab GUI

    万次阅读 多人点赞 2017-11-16 00:00:00
    本文来自作者 木木小迷哥 在 GitChat 上分享「Matlab GUI 零基础学员快速入门」,「阅读原文」查看交流实录 「文末高能」 编辑 | 洛肯 Matlab广泛地应用于数学分析、计算、自动控制、系统仿真、数字...
  • matlab之产品大全

    千次阅读 多人点赞 2020-12-16 19:30:59
    这里仅对matlab存在的工具做一个简单梳理,方便日后使用。 Matlab版本:R2020b 应用如下: 一、数学、统计和优化 1.曲线拟合工具箱 使用回归,插值和平滑使曲线和曲面适合数据 Curve Fitting Toolbox™:提供...
  • MATLAB串口通信

    万次阅读 多人点赞 2015-05-20 16:28:36
    Matlab并不具备直接访问硬件的能力,但是支持面向对象技术,通过调用Instrument Control Toolbox中的serial类函数来创建串口对象,对串口对象操作就是对串口操作,使用起非常方便。同时,Matlab封装的串口对象支持对...
  • - 使用 Matlab 工具栏上添加的按钮或使用命令行代码导出。 - 对所有轴标签、刻度标签和文本框应用适当的对齐和锚定,这样它们就不会在 PowerPoint 中调整图形大小或字体更改后出现错位。 - 识别对数和科学记数法...
  • MATLAB绘图之figure

    千次阅读 2020-11-03 14:30:18
    1.MATLAB基本的画图GUI界面 2、实例解释图中每个按钮 2.1点击“查看” 2.2各个图标功能 3.Figure的基本组成 转载于:气象家园 1.MATLAB基本的画图GUI界面 输入: figure; 生成一个最基本的图窗: ...
  • Matlab GUI界面

    千次阅读 2018-04-23 09:01:43
    原址http://www.cnblogs.com/nktblog/archive/2012/05/04/2482875.html去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,... 创建Matlab GUI界面通常有两种方式: 1,使用 .m 文件直接动态添...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,225
精华内容 490
热门标签
关键字:

matlab对齐对象工具

matlab 订阅