本周文件交换精选

我们最好的用户提交

你在母体实验室

肖恩本周的选择是黑客帝国实验室抓到你了通过Mathworlds

这是我在阅读后发现的布雷特的文章几周前。这是一个有趣的提交,你们可以自己跑-我不会破坏它。此提交确实依赖于一些未记录的功能在未来打破(有些已经)。但将会有替代品,其中一些已经可用。

这次提交引起我注意的是FEX页面上的警告:注:运行此程序将清除您的Matlab控制台,并可能改变您的一些Matlab首选项(字体和背景颜色)如果在运行时中断

如果被中断,它不会重置,这一事实告诉我,这个函数应该如何自我销毁,这是一个改进。现在:

  1. 获取原始设置值
  2. 设置新的设置值
  3. 运行演示
  4. 将设置设置回原始值

因此,如果你用ctrl+c中断或出现错误,[4]永远不会运行。有一个更好的方法来使用onCleanup对象。当对象被清除时,不管是否有错误,这些都可靠地触发!

我将使用新的文档来演示如何更改这个MATLAB会话的命令窗口错误颜色设置API

s =设置;s.matlab.colors.commandwindow.ErrorColor.TemporaryValue = [0 0 255]%蓝色错误s.matlab.colors.commandwindow.ErrorColor.clearTemporaryValue colorresetter = onCleanup (@ () ())
Simulink: [1×1 SettingsGroup] matlab: [1×1 SettingsGroup] colorres万博1manbetxetter = onCleanup with properties: task: @()s.matlab.colors.commandwindow.ErrorColor.clearTemporaryValue()

现在,当colorresetter变量被清除,它会自动清除我设置的值。在函数中,这将隐式地发生在末尾。因此,这个错误发生的事实并不意味着我永远卡住或需要手动调整设置。

错误(蓝精灵:错误的这个错误信息是蓝色的
使用mainMatrixLabHasYou出错(第52行

我使用onCleanup物体。一些我经常使用它们的事情:

  • 更改设置
  • fclose (fid)
  • 将目录更改到其他地方
  • 删除我创建的临时文件或文件夹

在单元测试的范围内,您应该使用testCase.addTeardown方法也将可靠地触发任务,但在测试执行的正确阶段执行它。

评论

试试吧,让我们知道你的想法在这里或者离开评论Mathworlds。




发布与MATLAB®R2020b

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。