时间将从find_system Simulink.findBlocks万博1manbetx
虽然没有什么根本性错误
find_system
在这篇文章中,我想强调一组函数,提供类似的功能改善可用性。
在MATLAB R2018a,我们介绍:
- 万博1manbetxSimulink.findBlocks:找块仿真软件模型万博1manbetx
- 万博1manbetxSimulink.findBlocksOfType在仿真软件模型中指定类型:找块万博1manbetx
- 万博1manbetxSimulink.allBlockDiagrams:找到加载仿真软件模型和库万博1manbetx
- 万博1manbetxSimulink.FindOptions:指定选项找块模型和子系统
让我们看看为什么我相信这些新api提供了一种改进的可用性。
两个等价查询
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_1.png)
mdl =“sldemo_fuelsys”;
load_system (mdl);
使用find_system:
blksFindSystem = find_system (mdl,“LookUnderMasks”,“所有”,“FollowLinks”,“上”,“BlockType”,“数学”)
使用Simu万博1manbetxlink.findBlocksOfType:
选择= Sim万博1manbetxulink.FindOptions;
选择。FollowLinks = true;
blksFindBlocks = 万博1manbetxSimulink.findBlocksOfType (mdl,“数学”、选择);
getfullname (blksFindBlocks)
看这段代码时,您可能想知道为什么我认为第二种方法更好的可用性。毕竟,这是3行代码,而不是1。
让我们看看,在更多的细节。
find_system——一步一步
让我们浏览我编写代码时的思维过程
find_system
。我将首先返回类型变量,等号并开始键入“
find_
“直到机制提供建议
find_system:
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_2.png)
一旦我接受,我类型模型名称,看看下一个建议:
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_3.png)
的function-style
find_system
MATLAB编辑可以列出不同的语法,而不是参数值。作为第一个猜测,我可能会去:
blksFindSystem = find_system (mdl,“BlockType”,“数学”)
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_4.png)
我从文档粘贴复制选择的名字在我的代码
blksFindSystem = find_system (mdl,“FollowLinks”,“上”,“BlockType”,“数学”)
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_5.png)
这一次,我成功:
blksFindSystem = find_system (mdl,“FollowLinks”,“上”,“LookUnderMasks”,“所有”,“BlockType”,“数学”)
承认一件事:即使在写代码
find_system
20年来,即使我知道我需要的选项,我总是打开文档,复制选项名称。原因可能是一个经常犯拼写错误和复制粘贴和输入所有的偏好。
万博1manbetxSimulink.findBlocksOfType- Step by Step
让我们经历相同的思维过程
万博1manbetxSimulink.findBlocksOfType
。与前面的情况下,我输入第一行开始
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_6.png)
我接受这个建议。
选择= Sim万博1manbetxulink.FindOptions;
一旦这样做,我可以把鼠标悬停在“选择”,立即看到选项:
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_7.png)
快速扫描,我可以看到
LookUnderMasks
已经设置为“
所有
”,但
FollowLinks
没有启用,所以我开始键入:
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_8.png)
我接受建议并完成线:
选择。FollowLinks = true;
我开始打字最后一行,一路伴随着代码的建议:
![](http://www.tianjin-qmedu.com/blogs/simulink/files/findBlocks_9.png)
blksFindBlocks = 万博1manbetxSimulink.findBlocksOfType (mdl,“数学”选择)
blksFindBlocks = 719.0001
我收到的是一块处理,它可以被传递给其他函数一样
set_param
,
get_param
,
hilite_system
等。如果你想看块路径
find_system
返回时,使用
getfullname
:
getfullname (blksFindBlocks)
最后比较
我希望证明,由于最新的增强tab补齐和代码建议在MATLAB编辑器中,
万博1manbetxSimulink.FindBlocks
和相关功能可以提高编码的经验。这是3行代码而不是1,但他们更容易编写和理解第一眼看上去那么简单。
一个优点是当我需要调用
万博1manbetxSimulink.findBlocks
很多次了。在大多数情况下,我将能够创建
万博1manbetxSimulink.FindOptions
对象只有一次和重用它很多次在我的代码中,简化的东西更多。
现在轮到你了
我花了比它应该意识到
万博1manbetxSimulink.findBlocks
和相关功能的改善我的工作流相比
find_syste
m。起初,我关掉的需要调用其他函数
万博1manbetxSimulink.findOptions
。然而,强迫自己使用几次后,我很快改变了我的想法,放弃了
find_system
。
给一个尝试
万博1manbetxSimulink.finBlocks
和相关功能,在下面的评论中让我们知道你的想法。
评论
要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。