本周的文件交换选择

我们最好的用户提交

矩阵实验室有你

肖恩本周的选择是你在母体实验室经过mathworlds.

我是在阅读后发现这一点的布雷特的帖子几周前。这是一个有趣的提交,你们可以跑自己 - 我不会破坏它。此提交确实依赖于某些无证能力未来的突破(有些已经突破了)。但是会有替代品,其中一些已经有了。

关于这次提交,引起我注意的是联邦快递页面上的警告:NB:运行此程序清除MATLAB控制台,也可以更改您的一些MATLAB首选项(字体和背景颜色)如果在运行时中断

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

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

所以如果你用ctrl+c中断或者出现错误,[4]永远不会运行。有一个更好的方法来做这个使用onCleanup对象。无论是否出现错误,这些都可以在清除物体时可靠地触发!

我将通过使用新文档更改此MATLAB会话的命令窗口错误颜色来演示设置API

s =设置;s.matlab.colors.commandwindow.ErrorColor.TemporaryValue = [0 0 255]%blue错误ColorResetter = oncleanup(@()s.matlab.colors.CommandWindow.ErrorColor.ClearTemporaryValue())
s =属性:slhistory:[1×1 setingsgroup] simulink:[1×1 settingsgroup] ma金宝apptlab:[1×1 settingsgroup] colorResetter =带有属性的onleanup:task:@()s.matlab.colors.commandwindow.errorcolor.cleartemporaryvalue()

现在何时污染物变量被清除,它将自动清除我设置的值。在一个函数中,这将在最后隐含地发生。因此,发生此错误的事实并不意味着我永久地卡住或手动调整设置。

错误('smurf:错误''这个错误消息是蓝色的'
这个错误消息是蓝色的

我用onCleanup对象一直在时间。一些常见的事情我会用它们:

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

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

评论

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




MATLAB®R2020b发布

|
  • 打印
  • 发送电子邮件

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。