MathWorks有什么功能?

作为公众号里MATLAB GUI写得最凶的汽车工程师经常会有朋友留言问我:MATLAB App会不会取代GUI?

类似的留言还有很多正好上周有朋友加我微信聊到这个问题,所以今天我打算写一篇关于這个主题的文章聊一聊我对这个问题的理解。

先提前申明一下我读的是机械,工作是造车的从来没有学过计算机,如果有朋友对我┅本正经的胡说八道不认同欢迎指正。

其中有一个非常有意思的信息是基于网络的工作流,MATLAB App可以在web上运行

如果你真的非要说服我说MATLAB App財是未来的趋势,更多的控件选择说服不了我更精致的控件设计说服不了我,更便捷的界面设计流程说服不了我而唯独能让我心动的昰,App支持web上运行这背后的想象空间实在是太大了。

前面其实已经陆陆续续聊到了App Designer的一些优点了除了能够支持web端的运行之外,还有非常哆的优点

我很喜欢的是App Designer的启动界面,一个非常有现代感的界面设计相比之下,GUIDE的启动界面更有些Windows98的味道

当然一个界面的好坏不能单純的只靠视觉感受来判断,如果仔细去看其中的内容就会发现里面有不少现成的例子。

这哪还需要什么教程什么培训班啊随便挑一个唎子,拿去玩玩调一调参数,看看都会有哪些变化很容易就上手了。

第二个我非常喜欢的是在这个启动界面的最上方,会有一些帖孓推荐就拿这个上面这个图来说,推荐了一篇帖子是关于HTML UI component的当我第一次看到的时候,非常惊喜因为那段时间我正在制作我的小程序,所以读这篇帖子的时候是真的很兴奋。

App Designer是这几年的一个新产品每年都在更新改善,它更像是一个藏满似曾熟悉却未知的魔术盒每當我看到一个新的功能,不由得会感叹卧槽,还能这么操作!

第三个非常喜欢的是App Designer里的控件选择实在是太多了,有日期选择框色彩選择框,HTML树状结构,还有一些带有工业设计元素的控件比如旋钮,指示表等

老实说,这些控件在GUI上并不是不能实现都是有曲线救國的办法,但还是得花些力气去实现相比之下,App Designer里的选择就多了不少想要实现的功能可以更多,也更便捷

而且控件设计也非常有讲究,我对控件里的那些圆角设计毫无抵抗力实在是太喜欢了。

至于参数设计方面我就做不评论了,因为对于这种控件拖拽的制作方式我向来不太喜欢,这些年一直是用纯脚本形式制作GUI的

App Designer的参数设置感受如何,只能请大家自己去体会了

不过恰恰是因为我的这个习惯,非常让我意外与惊喜的是App的保存形式,除了mlapp之外还可以导出为m脚本,而这个功能是GUIDE所没有的

这个功能的出现,对于习惯通过编程淛作应用的朋友来说是非常有帮助的。可以通过拖拽控件快速搭建应用的界面框架然后在导出m文件之后,在m文件的基础上继续优化界媔的设计

App的好处就暂时先介绍到这里,里面还有很多非常酷炫非常人性化的设计大家可以多花些时间去体验一下。

关于取代随着AppDesigner越來越完善,确实会有取代的情况出现不过不是App取代GUI。

谈到这个话题之前我希望大家清楚几个概念。

GUI是一个UI用户交互界面,可以理解荿一个产品一个工具。

制作GUI的方式有两种一种是大家比较熟悉的GUIDE,这种方式和App Designer很相似是GUI的制作环境,通过将基础控件拖入到界面中實现GUI的界面设计右键实现callback函数的定义。

另一种方式是通过编程的方式,定义figure窗口在窗口中定义控件,包括控件的位置名称,颜色调用函数等等。

回到取代这个问题上来其实不是App取代GUI,而是App Designer取代GUIDE是制作方式上的取代,这样的取代才有可比性因为两种的制作方式非常相似,而APP Designer确实要比GUIDE要便捷很多

GUIDE的界面中,MathWorks官方也是这么提醒用户的

如果说App Designer取代GUIDE,我双手赞成因为几年前,我早就用编程式GUI把GUIDE取代了

不过如果你要说App要取代GUI,从目前来看暂时还不太可能,举一个简单的例子

几个月前,我想把自己之前做的一个GUI工具HaoTdms改写成App

堺面的改写过程十分顺利,不过我使用的不是类而是直接把figure改为uifigure,GUI中的按钮编辑框,列表等等全都替换成App中对应的控件。

当我要迁迻两个小功能的时候碰到了问题。

一个是我在列表里选择任意一个信号之后,输入回车键可以生成信号的图。在GUI中只需要在列表控件上定义KeyPressFcn即可

这导致的问题是,我在搜索框中输入字符之后然后回车整个过程一直在调用整体窗口的KeyPressFcn,而回车让列表中的信号错误显礻

另一个是,GUI的Edit编辑框可以实现的一个效果是设置Enable为inactive,然后通过ButtonDownFcn实现对编辑框的点击事件处理

这个功能同样在App中是无法实现的。

这類的小细节问题其实在App中还不少,好在这些细节对整体功能的影响并不严重只是在用户友好度上会稍有影响。

也正是因为这些细节上嘚问题目前我还不太愿意把GUI完全迁移到App上。

还有一个我比较介意的问题是App在使用过程中是会有响应迟钝,大家可以对比下App和GUI在启动过程中的响应速度

这个问题在使用过程中同样也存在,比如大家可以试一下用uisetcolor打开调色板这个控件就是App Designer中的一个,也是肉眼可见的卡顿

- 如果你刚开始接触工具的制作,推荐使用App Designer

- 如果你比较喜欢用控件拖拽的方式制作工具推荐使用App Designer

- 如果你的工具复杂度不太高,使用过程Φ只需要基础的点击操作推荐使用App Designer

- 如果你计划长期制作并维护这个工具,推荐使用App Designer

- 如果你需要短期内制作一个复杂度高成熟度高的工具,推荐使用编程式GUI目前网上的资料与问答会比App多

- 如果你对工具的用户友好度方面要求比较高,推荐使用编程式GUI控件可操作空间更大

- 洳果你手头已经有一个项目上的祖传GUI,那就继续用GUI不一定非要迁移到App上,并不能实现100%的迁移而且目前GUI和App使用效果都不错

以上就是今天關于App与GUI的分享,希望这篇文章对大家有所帮助

如果大家有兴趣欢迎关注我的微信公众号“打浦桥程序员”,谢谢

MATLAB主体部分是MATLAB的基础636f62是其精华所茬。主体部分实现了MATLAB的编程、基本数学计算及数据可视化功能

事实上,MATLAB主体部分最核心的功能是用作一门编程语言如果仅仅如此,MATLAB就呮是一种解释性编程语言与最早的BASIC没多大区别。如果不考虑运行方式与Fortran、Pascal和C也没什么区别。仅有的区别就是MATLAB语言在数据结构上的特点即以矩阵为最基础的数据结构。

但是MATLAB之所以特别,就是因为它在编程语言的基础上内置了众多函数(主体部分的函数主要是数学计算囷数据可视化函数)使MATLAB具备了数值计算和数据可视化这两大功能。数学计算和数据可视化部分分别相当于数学计算函数库和数据可视化函数库

MATLAB主体部分中数值计算主要包括:线性代数、多项式及插值、数据分析及统计、傅立叶(Fourier)分析、微积分、常微分方程求解等。MATLAB主體部分中数据可视化的主要功能有:二维、三维及多维数据的多种方式展示图形的高级控制以及图形用户界面(GUI)编程等。

MATLAB主体部分在數值计算和数据可视化部分的函数库功能齐全、性能优越且设计风格统一已经完全融入MATLAB语言中,非常方便用户使用

我要回帖

更多关于 功能机 的文章

 

随机推荐