差不多有一个月的时间没有写一些总结了,所以今天打算聊聊之前写的几篇文章。

8月可以说是我的GUI月,因为发的4篇文章,全是关于GUI的。

这可能就是我写文章的一个陋习,写起GUI就是连着好几篇,写爬虫,写汽车也是如此。

在上周发了一篇关于GUI文件拖拽读取的文章之后,其实后台收到不少留言。

其中有一条留言是:

要什么GUI啊,难道不该自动遍历指定路径寻找符合要求的文件么,GUI是程序员写给不会写代码的人用的玩意……

如果不回应这条留言,那么今天我所聊的事,多少显得没有意义。相信不少刚关注这个公众号的朋友也会有类似的问题,为什么要写GUI。

我推荐一篇我在去年9月份写的文章,“我为什么写GUI”,有兴趣的朋友可以读一读。

文章链接: 我为什么写GUI

回到这篇文章的主题上来,如何学好MATLAB GUI,我将会用8月份的这4篇文章为例子,给大家介绍3种提升GUI能力的方法。

01

多研究其他软件

GUI入门其实是一件非常简单的事。

8月的GUI实战训练营,已经是我今年举办的第二次关于GUI的实战训练。

毫不夸张的说,所有参与实战训练的朋友,基本上不超过3天就能独立掌握用m脚本制作GUI工具。

但是,真正想要把GUI学好,并不是一件容易的事。

写GUI有点像学生时代写作文,如果你没有足够的阅读量,即使你每周坚持写上万把字,估计效果都很难令人满意。

GUI也同样如此

如果你没有研究过足够多的优秀软件,没有花心思思考其中的细节,没有幻想过这些细节在GUI中会是什么样子,最后也没有为了在GUI中复现功能而废寝忘食,很遗憾,你并没有体会到GUI的乐趣

GUI最迷人的地方在于,按钮可以是按钮,也可以不是按钮。

不同的控件组合在一起,通过各种callback,ButtonDownFcn,KeyPressFcn可以有无数种可能性。

比如我之前发布的一篇关于MATLAB如何通过拖拽文件进行数据读取

文章链接: 我被自己的这波操作蠢哭了……

文章写作手法是一回事,但是大家仔细代入到情景中去理解我的需求,你大概也就能明白,为什么我要写这样一个功能。

我有为此刻意去用过很多软件,很多网页,去尝试文件拖拽到界面,去搜索功能实现的原理。

还有一个对我来说非常重要的经历是,我在写HaoEngineering这款工具集时,其实我花了很多时间在研究有道词典上。

我就在琢磨有道词典的搜索栏,灰体的提示词,点击自动清空,回车触发搜索……这一系列很自然的使用习惯。

可是当我把这些功能和GUI联系起来时,我发现一点都不容易。

而最后终于废了九牛二虎之力写完这些功能,觉得自己面前的这款GUI才真正能称之为工具。

02

深入探索功能

平时经常用MATLAB处理Excel数据的朋友,我相信, xlsread和xlswrite这两个函数对你们来说非常熟悉。

而与此相关的帖子在网络上也到处都是。不过这两个函数只局限在数据文本的读写。

如果大家再稍有好奇心再希望偷懒一些,就会开始考虑MATLAB是否可以设置Excel中单元格字体颜色等等,这里就要考虑调用Excel.Application。

一年前,我为了实现快速生成Excel模板代码,于是写了HaoTemplate。

HaoTemplate最重要的一个功能是,根据现有的Excel模板,将它转换成模板代码。

既然MATLAB可以调用Excel.Application对字体颜色进行设置,那么MATLAB是否可以创建Chart图表?

于是上个月,我写了一个HaoPlot的功能,可以实现快速在MATLAB环境下生成Excel的图表进行再处理。

文章链接: MATLAB的plot,一点也不酷!

MATLAB与Excel交互这方面的例子,除了生成图表之外,还可以设置“格式条件”对数据进行一个更为高效的处理。

文章链接: 被一位大二学生啪啪打脸的经历

从整个过程来看,其实用MATLAB来处理Excel是一个再普通不过的需求,但是更重要的是,你有没有在基础的功能上再深入去探索。

当你花足够多的时间去研究MATLAB Excel交互这个问题,最后你会发现所有的需求都不再有难度,只需要通过录制宏再进行代码改写就能实现。

所以,再小一块知识点也能玩出花来,也可以掌握许多不一样的技巧。

时常保持好奇心与“惰性”,多深入探索拓展功能

03

知识的系统性

无论是之前写的关于自学的文章,还是平时一些朋友发私信问我如何入门,我基本上不太推荐工具书。

主要是因为工具书的内容太全面太系统了,如果只是想入门MATLAB的话,死啃工具书反而容易感觉枯燥而失去对编程的乐趣。

因此,我只会建议大家带着需求带着问题去网上查找解决问题的答案,尽快实现自己所需要的功能。

不过,“学好”和“入门”并不是一回事。

要学好MATLAB GUI,知识的系统性很重要。

虽然一招鲜在大部分时候都非常管用,但是偶尔碰到比较少见奇特的问题与需求时,如果你平时有系统地总结某一类问题与解决方案,往往这时候就不再需要花太多精力在这类问题上。

比如8月份我写的一篇关于MATLAB颜色设置的文章

文章链接: 与MATLAB颜色设置斗智斗勇的那些年

这篇文章总结了我从开始学MATLAB到目前碰到的所有与颜色设置有关的问题的经历。从最开始的通过缩写字母设置颜色,再到RGB数值设置颜色,再到目前通过自己开发的GUI选取颜色,同时还介绍了MATLAB自带的颜色选取器。

再比如8月份的另一篇文章关于文件选取的问题。

文章链接: 我被自己的这波操作蠢哭了……

就有朋友留言问我,是不是为了介绍文件拖拽选取的功能,而刻意杜撰了前面的两种情景。

其实,一直关注这个公众号的朋友应该清楚,我在写公众号关于高效这方面题材的时候,从来不靠杜撰来强行创造需求。

这些问题都是我在工作过程中实实在在遇到的问题,而且我相信有朋友会碰到同样的问题,所以这篇文章写的才有意义。

在这篇文章中,我介绍了三种不同的文件选取模式,分别通过输入路径,MATLAB自带的文件选取器,以及通过Java Swing实现的拖拽选取的功能。

再往远了说,我曾经还总结过,MATLAB在结束运算后如何通知你的几种方式

文章链接: 如何让MATLAB在完成计算后通知你

在这篇文章中我总结了如何用MATLAB实现声音,消息框,图片,邮件,微信等方式通知你。

总的来说,对于MATLAB GUI的进阶学习,我给大家的建议是:

- 平时多花一些时间在研究其他软件或APP上,拓展一下想象力,实现功能Concept的积累

- 保持好奇心,对已掌握的技能进行深入探索,拓展功能的可能性

- 对曾经遇到的问题与解决方案进行系统的总结,今后解决的不再是一个问题,而是一类问题

以上就是今天关于如何学好MATLAB GUI的总结分享,希望这篇文章对大家的GUI学习有所帮助。

作者介绍打浦桥程序员

汽车行业工程师

目前在德国从事系统工程

和你一起用MATLAB的角度看世界

matlab如何创建callback函数_如何学好MATLAB GUI相关推荐

  1. matlab中的mkdir函数_科学网—Matlab中计算函数运行时间的三种方法及判断新建文件夹 - 张伟的博文...

    (一)运行时间 1.tic和toc组合 计算daotic和toc之间那专段程序之间的属运行时间,它的经典格式为 : tic 函数 toc 复制函数代码,当代码遇到tic时Matlab自动开始计时,运行 ...

  2. MATLAB GUI如何创建Callback函数

    本文以创建按钮的Callback函数为例介绍了在MATLAB如何在GUI中创建Callback函数 首先在MATLAB中输入guide,打开GUI文件,这里我随机打开一个我之前创建的GUI文件: 假设 ...

  3. 【优化求解】基于matlab禁忌搜索算法求解函数极值问题【含Matlab源码 1204期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [优化求解]基于matlab禁忌搜索算法求解函数极值问题[含Matlab源码 1204期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...

  4. matlab数组平方的计算自定义函数_从零开始的matlab学习笔记——(38)简单数论计算函数:取整,gcd,lcm,质数,全排列...

    matlab应用--求极限,求导,求积分,解方程,概率统计,函数绘图,三维图像,拟合函数,动态图,傅里叶变换,随机数,优化问题....更多内容尽在个人专栏:matlab学习 翻了翻优化工具箱,发现内容 ...

  5. matlab trapz二重积分函数_如何使用 MATLAB 求解定积分、不定积分和多重积分问题...

    介绍几种 MATLAB 中求解积分的方法,首先是采用符号积分的方法,求解积分的符号函数为 \(int\),使用方法如下: int(f,x,a,b) 例如计算如下积分函数: $$\int \frac{1 ...

  6. matlab如何输出一个函数的图像,在matlab中如何输出一个函数的图像

    点击查看在matlab中如何输出一个函数的图像具体信息 答:A. imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread('filename','fmt')其 ...

  7. matlab拟合未定义函数或变量,关于matlab的未定义函数或变量的问题

    1.首先需要知道matlab中查看数据类型函数是class,可以先在命令行窗口中help class.2.在命令行窗口中输入"a=123 class(a)".3.按回车键可以看到变 ...

  8. matlab怎么发声,听听函数,看看声音--Matlab的sound()函数

    什么是声音 从本质上来说,声音其实是一种机械波1.各种波源的振动通过介质的传播到人类或者动物的听觉器官(耳)后,听觉器官中的特殊分化细胞将感受到的振动转换为神经冲动.这些携带着振动信息的神经冲动传导至 ...

  9. matlab hist函数_算法工匠MATLAB专训营:Matlab绘图,小试牛刀

    作者 | 蔡老师 仿真秀专栏作者 首发 | 仿真秀平台 导读:正文之前,我在此详细说明一下,因为本文包含的程序太难得,网上肯定找不到这样的程序.随着讲课的越来越深入,我给出的程序会越来越实用,接近于实 ...

最新文章

  1. 在 Windows 10 上安装 WSL | Microsoft Docs 转
  2. linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问
  3. setTimeout(0) 即将退役
  4. Dojo EnhancedGrid Pagination
  5. python编程从入门到实战类的定义_Python编程:从入门到实践—类
  6. java 时分秒格式小时8_Java里得到00:00:00格式的时分秒的Timestamp
  7. python keras_深度学习:基于Keras的Python实践
  8. Gartner发布2020年十大战略科技发展趋势
  9. word2016能识别linux换行符,word文章中的换行符如何批量替换为回车符
  10. SAP License:定义某一模块的后台配置权限
  11. 指针07:指针和函数
  12. cookie与session的比较
  13. spring boot redis分布式锁
  14. Android studio下的DNK开发JNI详解流程
  15. 使用cloudFlare实现动态DNS解析
  16. 魔方cfop公式软件_魔方与群论(一)(不要被标题吓到,高中生就可以看)
  17. 帮助新员工快速形成战斗力,Filez在入职与培训场景应用
  18. 洛谷P5707 【深基2.例12】上学迟到(c++)
  19. w ndows11如何设置电源选项,2018年度巨献(4):11款650W全模组80Plus金牌+电源横评
  20. 日本半导体的隐形冠军

热门文章

  1. SAP UI5 OData谣言粉碎机:极短时间内发送两个Odata request,前一个会自动被cancel掉吗
  2. SAP Spartacus里Product Carousel componentData取数据的逻辑研究
  3. Jerry's spark demo application
  4. /IWBEP/CX_MGW_TECH_EXCEPTION - expand issue for old service on Docu history node
  5. SAP CRM Fiori My Opportunity应用文件上传的技术实现
  6. OPA 6 - module(Create Button Test);
  7. SAP UI5 log level
  8. SAP UI5 control focus related research
  9. 如何把SAP Kyma和SAP Cloud for Customer连接起来
  10. Fiori应用里如何隐藏prospect字段