用MATLAB编程,或者Simulink建模仿真,有一个特别强大、特别人性化的功能,可以在workspace中直接查看定义的参数和运行的结果
无论是仿真的调试,结果的分析,或是中途的Debug,workspace都发挥着至关重要的作用
工具是好工具,不过我还是想吐槽一下……
几年前在我还是软件工程师的时候,经常会碰到这种情况
做控制器模型开发或者集成测试的时候,加载模型、标定量和模型测试需要的数据之后,workspace里就会产生无数个数据,多到什么情况,就是加载的时候会等的不耐烦,用滑块翻页会卡的那种
这导致的一个问题是,workspace就失去了它原本的作用,没办法一下子在workspace里找到想要查看的数据
我想查个热阻的标定量,记不住全名,只知道末尾是个“_C”,中间有个关键词“Rth”,你说我该在workspace里翻,还是到模型里找,万一这模型根本不熟,是不是就GG了
有相同经历的汽车工程师,麻烦评论区举个手
于是,我根据这个槽点,自己DIY了一个workspace,叫HaoWorkspace
今天我们就来聊一聊,HaoWorkspace都有哪些有意思的功能
既然要做一个山寨workspace,第一要素就是外观上要像
所以,我在HaoWorkspace里加入了windows docked的功能,启动之后会自动停靠在MATLAB界面中
figure('windowstyle','docked')
我把HaoWorkspace的窗口移动到workspace上方,这样看起来就真的挺像一个workspace了
前面吐槽这么多,说白了,就是希望workspace里能增加一个变量名搜索的功能
在HaoWorkspace里变量名搜索的功能通过一个搜索框就实现了,在搜索框中输入关键词,回车,就能过滤出所有带有关键词的目标变量名,同时还支持多关键词搜索,通过空格符分隔
定位到需要的变量之后,大家可以在命令栏粘贴变量名查看数值,更简单的做法是,我加入了一个快捷键查看变量的功能,选取变量,按一下空格键,就能查看变量内容了
除了变量名检索功能之外,我还加入了数据类型过滤的功能
只需要在下拉菜单中选取想要查看的数据类型,就能把这种类型的所有数据过滤出来
前面吐槽的功能,HaoWorkspace已经顺利解决了,不过HaoWorkspace难道就只有这两个简单的功能吗?
必须不是!
HaoWorkspace还能把变量导出到mat文件、m文件和Excel文件中
肯定有朋友会说,workspace右键也能另存为mat文件和m文件啊
但是,HaoWorksapce可以基于变量的检索过滤,根据用户需求,有选择的导出,也算是检索功能基础上的一个拓展功能
简单聊几句我为什么要写这个功能
做控制器开发或者仿真的时候,经常需要对标定量调参优化,但这并不是一蹴而就的,几个关联标定量之间需要反复调整,最终才能确定
调完了,头就大了,因为要把最终的标定量同步回数据管理文件中,而标定量实在太多了
我问了一些工程师朋友,他们的做法是,每调一个参数数值,就要先手动在数据文件里修改,然后运行脚本,把改动数据赋值到workspace里测试效果,再继续改
而HaoWorkspace能解决的问题是,大家只管尽情地在命令栏改标定量,调到你满意为止,最后再一键导出
有些朋友习惯用m文件管理标定量,那就只需要在搜索框中检索标定量特定的标志,比如末尾“_C”,然后把过滤出的全部标定量导出到m文件
有些项目用的是特定的数据类型,那就可以按照数据类型进行过滤,然后全选导出
同时,数据导出功能加入了excel选项,很多朋友在平时工作过程中习惯用excel管理数据
但是在功能开发过程中存在一个问题,就是文件模板难以统一,所以目前初版功能我暂时先用一个比较简单的excel模板导出数据,之后大家有更好的建议,可以微信我
导出的excel中,按照不同数据类型定义相应的sheet,比如double数据存放在一个sheet中,cell数据存放在另一个sheet中
以上就是今天关于HaoWorkspace的一个简单分享
如果你也对MATLAB感兴趣,欢迎关注我的公众号“打浦桥程序员”,更多MATLAB GUI工具,电子书,视频和源代码等你来拿~
对HaoWorkspace有兴趣的朋友直接拿去用吧
链接:https://pan.baidu.com/s/1Ejkzw6Ecgd5trEwL6WY6Ig
密码:afio