人在仿真软件万博1manbetx

万博1manbetx仿真软件和基于模型的设计

时间将从find_system Simulink.findBlocks万博1manbetx

如果你创建、编辑或分析仿真软件模型编程,你可能很熟悉万博1manbetx find_system
虽然没有什么根本性错误 find_system 在这篇文章中,我想强调一组函数,提供类似的功能改善可用性。
在MATLAB R2018a,我们介绍:
让我们看看为什么我相信这些新api提供了一种改进的可用性。

两个等价查询

让我们先看一个典型的例子。使用的例子 sldemo_fuelsys ,让我们来比较一下代码找到唯一 数学函数 块在这个模型:
mdl =“sldemo_fuelsys”;
load_system (mdl);
使用find_system:
blksFindSystem = find_system (mdl,“LookUnderMasks”,“所有”,“FollowLinks”,“上”,“BlockType”,“数学”)
blksFindSystem =1×1单元阵列
{' sldemo_fuelsys /油门↵命令/数学↵函数”}
使用Simu万博1manbetxlink.findBlocksOfType:
选择= Sim万博1manbetxulink.FindOptions;
选择。FollowLinks = true;
blksFindBlocks = 万博1manbetxSimulink.findBlocksOfType (mdl,“数学”、选择);
getfullname (blksFindBlocks)
ans =
“sldemo_fuelsys /油门命令/数学函数”
看这段代码时,您可能想知道为什么我认为第二种方法更好的可用性。毕竟,这是3行代码,而不是1。
让我们看看,在更多的细节。

find_system——一步一步

让我们浏览我编写代码时的思维过程 find_system 。我将首先返回类型变量,等号并开始键入“ find_ “直到机制提供建议 find_system:
一旦我接受,我类型模型名称,看看下一个建议:
的function-style find_system MATLAB编辑可以列出不同的语法,而不是参数值。作为第一个猜测,我可能会去:
blksFindSystem = find_system (mdl,“BlockType”,“数学”)
blksFindSystem = 0×1空单元阵列
因为它返回什么,我看看 find_system文档 为更多的细节。我确定的第一件事就是阻止我寻找在一个图书馆链接,所以我添加 FollowLinks 选择。
我从文档粘贴复制选择的名字在我的代码
blksFindSystem = find_system (mdl,“FollowLinks”,“上”,“BlockType”,“数学”)
blksFindSystem = 0×1空单元阵列
还是什么都没有。回到了文档,我找到了 LookUnderMasks 选项
这一次,我成功:
blksFindSystem = find_system (mdl,“FollowLinks”,“上”,“LookUnderMasks”,“所有”,“BlockType”,“数学”)
blksFindSystem =1×1单元阵列
{' sldemo_fuelsys /油门↵命令/数学↵函数”}
承认一件事:即使在写代码 find_system 20年来,即使我知道我需要的选项,我总是打开文档,复制选项名称。原因可能是一个经常犯拼写错误和复制粘贴和输入所有的偏好。

万博1manbetxSimulink.findBlocksOfType- Step by Step

让我们经历相同的思维过程 万博1manbetxSimulink.findBlocksOfType 。与前面的情况下,我输入第一行开始
我接受这个建议。
选择= Sim万博1manbetxulink.FindOptions;
一旦这样做,我可以把鼠标悬停在“选择”,立即看到选项:
快速扫描,我可以看到 LookUnderMasks 已经设置为“ 所有 ”,但 FollowLinks 没有启用,所以我开始键入:
我接受建议并完成线:
选择。FollowLinks = true;
我开始打字最后一行,一路伴随着代码的建议:
blksFindBlocks = 万博1manbetxSimulink.findBlocksOfType (mdl,“数学”选择)
blksFindBlocks = 719.0001
我收到的是一块处理,它可以被传递给其他函数一样 set_param , get_param , hilite_system 等。如果你想看块路径 find_system 返回时,使用 getfullname :
getfullname (blksFindBlocks)
ans =
“sldemo_fuelsys /油门命令/数学函数”

最后比较

我希望证明,由于最新的增强tab补齐和代码建议在MATLAB编辑器中, 万博1manbetxSimulink.FindBlocks 和相关功能可以提高编码的经验。这是3行代码而不是1,但他们更容易编写和理解第一眼看上去那么简单。
一个优点是当我需要调用 万博1manbetxSimulink.findBlocks 很多次了。在大多数情况下,我将能够创建 万博1manbetxSimulink.FindOptions 对象只有一次和重用它很多次在我的代码中,简化的东西更多。

现在轮到你了

我花了比它应该意识到 万博1manbetxSimulink.findBlocks 和相关功能的改善我的工作流相比 find_syste m。起初,我关掉的需要调用其他函数 万博1manbetxSimulink.findOptions 。然而,强迫自己使用几次后,我很快改变了我的想法,放弃了 find_system
给一个尝试 万博1manbetxSimulink.finBlocks 和相关功能,在下面的评论中让我们知道你的想法。
|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。