matlab如何创建callback函数_如何学好MATLAB GUI

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

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如何通过拖拽文件进行数据读取

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

48caa69ffbfeb3122fa30c641dee391c.gif

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

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

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

00e3172aeeb45608c0162871e239168d.gif

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

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

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

ca664ce7f38382a9f024ee63ea0dd2ef.gif

02

深入探索功能

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

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

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

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

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

cd341f1d18223a8837668f3f2a418d71.gif

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

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

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

fde4395a6b8fd90f38b4ea627e58365e.gif

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

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

f532711d1a2543f2b6e9193ff851d8bf.gif

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

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

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

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

03

知识的系统性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

36dca249ef09323c3fc9f3db5c12eed7.gif

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

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

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

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

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

作者介绍打浦桥程序员

汽车行业工程师

目前在德国从事系统工程

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

8bae6dfa87b4a9d0477fec2cb641f883.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值