Loren谈MATLAB的艺术

将想法转化为MATLAB

请注意

Loren谈MATLAB的艺术已存档,不会更新。

在版本R2021a中有一个争论

您是否看过这样的代码:调用带有许多参数(其中许多是字符串)的函数时,发现很难看到发生了什么?我知道我有。也许你也是。在释放 R2021a ,除了相对较新的功能外,该语言还有一个新的功能可以帮助我 参数 我写过的 在这里 .如果你有自己的观点,你可能会想看看 这个经典视频

制作一个要修改的情节

让我们从制作一个情节并注释它开始。
T = 0:0.1:10;
Y = sin(2* *60*t) + 0.2*randn(size(t));
情节(t, y)
包含(“时间(秒)”
ylabel (“信号(电压)”
标题(“典型信号”
网格(“上”

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

现在,假设我想重新创建相同的情节,但对外观有更多的控制。我可以使用名值对,我们已经在MATLAB中使用了很多年。
情节(t y“标记”“o”“MarkerEdgeColor”“k”“MarkerFaceColor”“y”“线型”“-”。“线宽”, 1.0)
包含(“时间(秒)”
ylabel (“信号(电压)”
标题(“离散信号”
网格(“上”
当你从第一行读到 情节 就在上面,很容易丢失,特别是当值恰好是较长的字符串时。

通过name=value更改plot(从R2021a开始)

我可以使用R2021a的新功能来使用 名称=值语法 (以及 在这里 )以达到同样的效果。
情节(t y =标志“o”MarkerEdgeColor =“k”MarkerFaceColor =“m”线型=”:“,线宽= 2.0)
包含(“时间(秒)”
ylabel (“信号(电压)”
标题(“离散信号”
网格(“上”

平滑数据

现在让我们试着平滑该信号并显示结果。
smooththedata = smoothdata(y,“movmean”SamplePoints SmoothingFactor = 0.5, = t);
情节(t y“颜色”,[77 190 238]/255,DisplayName= .输出说明“输入数据”
持有
plot(t, smoothedata,Color=[0 114 189]/255,LineWidth=1.5,...
DisplayName =“平滑数据”
持有
传说
包含(“时间(秒)”
ylabel (“信号(电压)”
标题(“平滑信号”
网格(“上”

讨论

这个语法有一些限制,在发布说明中列出了。例如, 名称=值 语法只对输入中的尾随有效。换句话说,一旦选择了给定函数调用的语法,所有剩余的输入也必须加入 名称=值 的形式。由于语法是新的,目前还缺少一些功能支持,比如制表符补全。从我的角度来看,我认为它使我的代码比以前更具有自文档性,因为匹配字符串输入的负担不再是一个问题。你有什么想法 名称=值 可选的,尾随输入参数的语法?让我们知道 在这里
版权所有:The MathWorks, Inc.
|
  • 打印
  • 发送电子邮件