MATLAB App Designer入门实战(一)

最近也是在研究MATLAB App Designer,开这样的一个系列主要是为了记录我在研究App Designer时遇到的一部分问题的解决,和一部分有趣的想法,每一篇文章会展示如何将一个项目mlapp化。
mlapp化的大部分都是以前做的小项目,因此各个组件的属性便可以直接复制,这一部分不详细解说,以下是将像素化程序使用App Designer编写过程中可能会遇到的问题。
系列文章目录:

入门实战第一弹——像素画绘制App

1.如何在App启动时,让坐标区显示图像

如图所示,程序刚启动红框的位置内就已经有一个调色板,
在这里插入图片描述
如果在App Designer内编程,这个图片我们在这个坐标区域自动创建的时候没办法加一个这样的图像,因为:
灰色区域无法手动修改
在这里插入图片描述
属性检查器没有添加图像的属性

这时候就需要我们的startupFcn回调函数,这个函数是,在所有自动创建元件创建完后会自动调用一次,创建方法为:


之后便可以使用imshow plot scatter等函数在startupFcn回调函数内为特定坐标区域绘制图像,这些函数对于UIAxes的使用方法详见Mathworks,这里列举一部分:

plot:
plot(app.UIAxes,X,Y)
imshow:
imshow(Pic,‘Parent’,app.UIAxes)

Mathwork这部分内容链接:在 App 设计工具中显示图形

2.如何在App启动时,为变量赋值,如何设置全局变量。

要在App启动时为某些变量设置初值,依旧需要用到startupFcn回调函数,比如我希望程序一开始,初始颜色为蓝色,就可以:
在这里插入图片描述
但如果像图中这样直接设置数值,只能在startupFcn一个函数内使用,也就是说他是一个局部变量,无法跨函数使用,我们是想设置一个初值,如果设置了之后其他函数不能用那肯定不行,这时候我们需要给app添加属性,具体方法如下:

通过点击上面两个按钮我们发现,此时代码部分多了几行:
在这里插入图片描述
这里的Property只是一个示例,完全可以改成其他名字:
在这里插入图片描述
这时候我们再看之前startupFcn内的代码提示:
在这里插入图片描述
使用app.presentColor引用此属性,这时候在程序的任何地方都可以通过app.presentColor改变取值或者调用,例如(赋值):
在这里插入图片描述
分析
我对app以及其属性的理解是,这里面这个小写的app,在每个函数都会被作为参数传入,有点类似python中的this,我们可以为其增添属性,既然app在每个函数内都能引用,那么其属性的使用过程有点类似与全局变量的使用。
多个属性创建:
通过换行分隔创建多个属性:
在这里插入图片描述
通过’,‘及’;'分隔创建多个变量
在这里插入图片描述

3.如何创建和使用函数

像素画程序涉及到了十六进制码向RGB颜色的转换,我们因此需要创建互相转化用到的相应函数,创建方法如下:

通过此方法创建的函数具有以下的形式,其中的函数名,输入输出都是可以更改的:
在这里插入图片描述
需要注意的是,函数可以有多个参数,但是第一个参数必须是app,如果在函数中没有使用到app这个参数,则可以使用~来替换,如下图所示:
在这里插入图片描述
另外编写的函数在调用时,无论函数是否使用到app这个参数,无论是否使用~,app都必须作为输入参数,如下图所示,该函数使用时的第一个参数为app。
在这里插入图片描述

4.如何判读鼠标是否点击坐标区,如何获得鼠标在坐标区内位置

首先UIAxes是无法添加回调的,要判断鼠标是否点击坐标区,需要使用UIFigure所带的WindowButtonDownFcn回调函数,该函数的创建方式与之前提到的startupFcn回调函数相同,且回调函数会在鼠标点击程序界面时被调用,需要注意的是,UIFigure还有一个回调名为ButtonDownFcn,这两个函数是有一定差别的,对于WindowButtonDownFcn回调函数,界面上的任意点击都会调用该函数,但对于ButtonDownFcn函数来说,鼠标只要无法直接点击到UIfigure都无法调用该函数,
作用范围:
红框以内,蓝框以外
WindowButtonDownFcn:
在这里插入图片描述

ButtonDownFcn:
在这里插入图片描述
设置了WindowButtonDownFcn回调之后我们可以通过UIFigure自带的CurrentPoint属性获取鼠标最后点击的点相对于UIFigure坐标体系的位置,在通过和UIAxes位置进行比对后,确定鼠标点击点是否在UIAxes内,在哪个UIAxes内,同时UIAxes也有CurrentPoint属性,可以获得相对于UIAxes鼠标最后点击点的位置。
在这里插入图片描述
这里图方便用了switch函数,看不懂这个操作的可以老老实实的用if来写分支。
注:
在较新的版本中可以通过 获取uifigure的CurrentAxes属性来得到最后点击的uiaxes,只需要将代码改为(后面会提到这里为啥只用了x坐标):

在这里插入图片描述
这里uifigure的名字比较长不太好看,但重点是后面的CurrentAxes属性,他就是最后点击的uiaxes,具有着AXES所具有的所有属性,因此我们当然可以依据tag来区分uiaxes:
在这里插入图片描述
但其实各个uiaxes还有一个明显的区分就是其Position位置属性,不同做坐标区域位置是不同的,由于我们这个程序就俩uiaxes控件而且x坐标还不一样,因此我们可以只判断tempAxes的Position属性的第一个数值来判断,当然若是控件出现c轴坐标相同的情况,就需要把y轴坐标一起纳入考虑。

5.如何在同一坐标区绘制多个图像

UIAxes中绘制图像时一般会自动刷新之前的图像,想要灵活的绘制多个图像可以使用hold函数,具体使用方式参见官网,这里只介绍基础使用方法。如图所示,使用方法类似之前的hold on,hold off,不过需要对特定的UIAxes使用。
在这里插入图片描述

6.如何不显示UIAxes的工具栏

程序中,左侧的坐标区域是有工具栏的,但是右侧的坐标区的工具栏是被隐藏的,为的是防止工具栏妨碍取色:
在这里插入图片描述

这个设置可以在startupFcn内设置,如图所示:
在这里插入图片描述
可以通过

app.UIAxes.Toolbar.Visible=‘off’

这样的方式,对其进行隐藏


相信认真看完这篇文章的你已经有了还原该mlapp文件的能力,希望了解更多神奇操作,例如如何批量创建元件啥的请关注下一期,本期内容相关文件:
MATLAB像素画程序m文件链接:MATLAB 像素画绘制APP
MATLAB像素画程序mlapp文件链接:像素画绘制APP,pixelPicDesignApp.mlapp

  • 73
    点赞
  • 549
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
### 回答1: Matlab App DesignerMatlab的一个应用程序设计工具,它可以帮助用户快速创建交互式应用程序。如果想要学习Matlab App Designer,可以从以下几个方面入手: 1. 学习Matlab基础知识,包括Matlab语言、Matlab编程环境、Matlab图形界面等。 2. 学习Matlab App Designer的基本概念和使用方法,包括创建应用程序、添加组件、设置属性、编写回调函数等。 3. 学习Matlab App Designer的高级应用,包括使用Matlab App Designer进行数据分析、图像处理、机器学习等。 4. 实践应用程序设计,尝试使用Matlab App Designer创建自己的应用程序,不断提高自己的编程能力和应用水平。 总之,学习Matlab App Designer需要不断实践和探索,只有不断积累经验和知识,才能掌握这个工具的使用技巧。 ### 回答2: Matlab App DesignerMatlab中的一个工具箱,旨在帮助Matlab用户通过可视化方式快速创建自定义图形界面(GUI)。它提供了丰富的图形控件、交互式设计、布局和数据控件等功能,并且能够与Matlab的核心计算引擎无缝集成,使用户的GUI能够自动处理数据输入、计算和输出等环节。下面将从入门实践的步骤展开介绍。 入门篇: 1. 安装MatlabApp Designer:在Matlab的网站上下载一个Matlab版本,安装后再安装App Designer,这个过程比较简单。 2. 了解App Designer的界面:App Designer的界面类似于其他的GUI设计软件,主要分为视图(View)和代码(Code)两个部分。 3. 创建一个简单的GUI:可以尝试使用App Designer设计器创建一个简单的GUI,可以包括文本框、按钮、菜单栏等控件。 进阶篇: 1. 掌握控件的使用:App Designer提供了很多控件,包括文本框、编辑框、列表框、按钮等等,用户需要学会如何使用这些控件。 2. 学习数据控件:Matlab的数据处理能力是其一大特点,用户可以通过学习数据控件的使用方式来实现更多功能。 3. 学习App Designer代码编写:App Designer不仅提供了可视化设计界面,还可以通过代码的方式来控制控件和数据的处理过程。 实践篇: 1. 自主开发一个实际应用程序:可以根据自己的需求,在App Designer中创建一个实际应用程序。 2. 优化程序代码:根据实际的使用过程,不断优化代码,提高程序的性能和可用性。 3. 分享程序:将编写的程序分享给其他人使用,也可以通过分享过程中的反馈不断改善程序。 通过以上步骤,可以学习到如何使用App Designer这个Matlab工具箱,并实现一个实际应用程序,从而提高Matlab的应用效率。 ### 回答3: 首先,Matlab app designer是一种可视化设计工具,可以快速创建基于MATLAB的应用程序。通过使用这个工具,你可以轻松地设计用户界面,并添加各种功能控件,例如按钮、文本框、下拉菜单、拖动条等。同时,你还可以使用Matlab代码连接这些控件,从而创建一个整体的应用程序。具体来说,我们可以通过以下几个步骤学习Matlab app designer: 1.入门 首先,你需要打开MATLAB,然后从主菜单栏中选择"APPS",在弹出的菜单中选择"App Designer",就可以开始使用这个工具了。一开始,你会发现它的界面可能有些陌生,但是不用担心,你可以通过阅读文档或者观看一些视频教程来快速了解它的各项功能。 2.设计界面 在学习Matlab app designer的过程中,你需要先了解如何在界面中添加各种控件。你可以使用工具栏中的控件来添加按钮、文本框、图像、下拉菜单等,而这些控件的属性可以通过属性编辑器来进行配置。你还可以使用布局编辑器来排列这些控件,从而创建一个漂亮的用户界面。 3.添加功能 在创建用户界面之后,你需要添加相应的功能。Matlab app designer提供了大量的内置函数,可以帮助你完成各种功能实现。比如,你可以使用MATLAB的计算功能来处理数据,从而实现图像绘制、数据可视化等效果。同时,你还可以使用Matlab编写函数来连接不同的控件,实现交互式操作。 4.实践 最后,通过实践,你可以更深入地理解Matlab app designer的使用方法。你可以选择一些实际问题,然后使用这个工具来实现相应的解决方案。在实践过程中,你可能会遇到一些问题,可以通过查看文档或者搜索在线论坛来寻求帮助。 总之,学习Matlab app designer需要提前掌握一定的MATLAB基础,并且需要耐心地阅读文档和进行实践。通过不断地尝试和探索,你会逐渐熟悉这个工具,从而可以快速地创建出运行良好的应用程序。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

slandarer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值