Loren在Matlab的艺术上

将想法转化为matlab

在释放R2021A中具有论点

你有没有看过你呼吁具有许多参数的函数的代码,其中许多是字符串,并发现很难看出发生什么?我知道我有。也许你也是。释放 R2021A ,除了相对较新的语言之外,还有一个可以帮助我的语言的新功能 争论 块我写的 这里 。为了制作自己的论点,你可能想看 这个经典的视频

制作一个修改的情节

让我们首先制作一个情节并注释它。
t = 0:0.1:10;
y = sin(2 * pi * 60 * t)+ 0.2 * randn(尺寸(t));
情节(t,y)
Xlabel(“时间(以秒为单位)”的)
ylabel(“信号(电压)”的)
标题(“规范信号”的)
网格(“在”的)

通过名称值对更改绘图(2020和之前)

现在让我们说我想重新创建同一个情节,而是对外观进行更多的控制。我可以使用名称 - 值对,我们已经在Matlab中使用了多年。
绘图(t,y,“标记”“o”“markeredgecolor”“k”“MarkerfaceColor”“y”“骗局”“ - 。”“行宽”,1.0)
Xlabel(“时间(以秒为单位)”的)
ylabel(“信号(电压)”的)
标题(“离散信号”的)
网格(“在”的)
当你通过这方面阅读你的方式 阴谋 就在上面,很容易丢失,特别是如果这些值恰好是较长的字符串。

通过名称=值更改绘图(从R2021A开始)

我可以使用R2021A中的新功能来使用 名称=值语法 (也 这里 )完成相同的结果。
绘图(t,y,marker =“o”,markeredgecolor =“k”,markerfacecolor =“m”,linestyle =“:”,linewidth = 2.0)
Xlabel(“时间(以秒为单位)”的)
ylabel(“信号(电压)”的)
标题(“离散信号”的)
网格(“在”的)

平滑数据

现在让我们尝试平滑该信号并显示结果。
smootheddata = smoothdata(y,“movmean”,smoothingfactor = 0.5,samplepoints = t);
绘图(t,y,“颜色”,[77 190 238] / 255,displayname =“输入数据”的)
抓住
绘图(t,smootheddata,color = [0 114 189] /255 ,linewidth=1.5,......
displayname =“平滑数据”的)
抓住离开
传奇
Xlabel(“时间(以秒为单位)”的)
ylabel(“信号(电压)”的)
标题(“平滑信号”的)
网格(“在”的)

讨论

此语法具有一些限制,在发行说明中列出。例如,这 名称=值 语法仅在输入中有效。换句话说,一旦选择给定函数调用的语法,所有剩余的输入也必须进入 名称=值 形式。由于语法是新的,因此丢失了此刻的一些带来,例如选项卡完成。从我的角度来看,我认为它使我的代码更加自我记录,因为与字符串输入匹配的负担不再是一个问题。你的想法是什么? 名称=值 可选的语法,尾随输入参数?让我们知道 这里
版权所有2021 MathWorks,Inc。
|
  • 打印
  • 发送电子邮件

注释

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