• MATLAB中find_system用法


    目录

    语法

    说明

    示例

    查找已加载的系统及其模块

    查找特定的系统及其模块

    返回加载的模型、子系统和库的名称

    搜索子系统的子级

    使用多个条件进行搜索

    以句柄形式返回信号线和注释

    搜索特定的模块参数值

    使用正则表达式进行搜索

    正则表达式搜索部分匹配

    更新子系统中的库链接

    以句柄形式返回值


            find_system工能是查找系统、模块、信号线、端口和注释。

    语法

    1. Objects = find_system
    2. Objects = find_system(System)
    3. Objects = find_system(Name,Value)
    4. Objects = find_system(System,Name,Value)

    说明

            ​Objects = find_system 返回已加载的系统及其模块,包括子系统。​

            Objects = find_system(System) 返回指定的系统及其模块。

            ​Objects = find_system(Name,Value) 返回已加载的系统以及这些系统中满足一个或多个 Name,Value 对组参数指定的条件的对象。您可以使用此语法指定搜索约束和搜索特定的参数值。在参数和值对组之前指定搜索约束。

            ​Objects = find_system(System,Name,Value) 返回指定系统中满足指定条件的对象。

    示例

    查找已加载的系统及其模块

            返回所有已加载的系统及其模块的名称。

    1. load_system('vdp')
    2. find_system
    3. ans = 15x1 cell
    4. {'vdp' }
    5. {'vdp/Constant' }
    6. {'vdp/More Info' }
    7. {'vdp/More Info/Model Info'}
    8. {'vdp/Mu' }
    9. {'vdp/Mux' }
    10. {'vdp/Product' }
    11. {'vdp/Scope' }
    12. {'vdp/Square' }
    13. {'vdp/Sum' }
    14. {'vdp/Sum1' }
    15. {'vdp/x1' }
    16. {'vdp/x2' }
    17. {'vdp/Out1' }
    18. {'vdp/Out2' }

            返回已加载的系统和库,包括 vdp。

    查找特定的系统及其模块

            返回 vdp 系统及其模块。

    1. load_system({'vdp','ex_sldemo_clutch'})
    2. find_system('vdp')
    3. ans = 15x1 cell
    4. {'vdp' }
    5. {'vdp/Constant' }
    6. {'vdp/More Info' }
    7. {'vdp/More Info/Model Info'}
    8. {'vdp/Mu' }
    9. {'vdp/Mux' }
    10. {'vdp/Product' }
    11. {'vdp/Scope' }
    12. {'vdp/Square' }
    13. {'vdp/Sum' }
    14. {'vdp/Sum1' }
    15. {'vdp/x1' }
    16. {'vdp/x2' }
    17. {'vdp/Out1' }
    18. {'vdp/Out2' }

    返回加载的模型、子系统和库的名称

            返回加载的模型、子系统和库的名称。仅当子系统可以独立加载时,才会返回子系统名称。

    1. load_system('vdp');
    2. find_system('type','block_diagram')
    3. ans = 1x1 cell array
    4. {'vdp'}

    搜索子系统的子级

            返回作为 ex_sldemo_clutch 系统的 Unlocked 子系统的子级存在的所有 Goto 模块的名称。

    1. load_system('ex_sldemo_clutch');
    2. find_system('ex_sldemo_clutch/Unlocked','SearchDepth',1,'BlockType','Goto')
    3. ans = 2x1 cell
    4. {'ex_sldemo_clutch/Unlocked/Goto' }
    5. {'ex_sldemo_clutch/Unlocked/Goto1'}

    使用多个条件进行搜索

            在 vdp 系统中进行搜索,并返回增益值设置为 1 的所有 Gain 模块的名称。

    1. load_system('vdp');
    2. find_system('vdp','BlockType','Gain','Gain','1')
    3. ans = 1x1 cell array
    4. {'vdp/Mu'}

    以句柄形式返回信号线和注释

            获取 vdp 系统中所有信号线和注释的句柄。对于 'FindAll',不管如何指定要搜索的系统,该函数都会返回句柄。

    1. load_system('vdp');
    2. L = find_system('vdp','FindAll','on','type','line')
    3. L = 19×1
    4. 34.0004
    5. 33.0004
    6. 32.0004
    7. 31.0004
    8. 30.0004
    9. 29.0004
    10. 28.0004
    11. 27.0004
    12. 26.0004
    13. 25.0004
    14. A = find_system('vdp','FindAll','on','type','annotation')
    15. A = 2×1
    16. 36.0004
    17. 35.0004

    搜索特定的模块参数值

            在 vdp 和 ex_sldemo_clutch 系统中查找值为 0 的任何模块对话框参数。

    1. load_system({'vdp','f14'})
    2. find_system({'vdp','f14'},'BlockDialogParams','0')
    3. ans =
    4. 32×1 cell array
    5. {'vdp/More Info' }
    6. {'vdp/More Info/Model Info' }
    7. {'vdp/Scope' }
    8. {'vdp/x2' }
    9. {'vdp/Out1' }
    10. {'vdp/Out1' }
    11. {'vdp/Out2' }
    12. {'vdp/Out2' }
    13. {'f14/Aircraft↵Dynamics↵Model' }
    14. {'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
    15. {'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
    16. {'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
    17. {'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)' }
    18. .
    19. .
    20. .

    使用正则表达式进行搜索

            在当前加载的系统的顶层查找模块对话框参数值以 3 开头的所有模块。

    1. load_system({'ex_sldemo_clutch','vdp'});
    2. find_system('SearchDepth','1','regexp','on','BlockDialogParams','^3')
    3. ans = 4x1 cell
    4. {'vdp/Scope' }
    5. {'vdp/Scope' }
    6. {'vdp/Square' }
    7. {'ex_sldemo_clutch/w'}

    正则表达式搜索部分匹配

            使用正则表达式进行搜索时,可以指定要匹配的字符向量的一部分,以返回包含该字符向量的所有对象。在 ex_sldemo_clutch 模型中查找所有 Inport 和 Outport 模块。

    1. load_system('ex_sldemo_clutch');
    2. find_system('ex_sldemo_clutch','regexp','on','blocktype','port')
    3. ans = 39x1 cell
    4. {'ex_sldemo_clutch/Friction...' }
    5. {'ex_sldemo_clutch/Friction...' }
    6. {'ex_sldemo_clutch/Friction...' }
    7. {'ex_sldemo_clutch/Friction Mode Logic/Tin' }
    8. {'ex_sldemo_clutch/Friction Mode Logic/Tfmaxs' }
    9. {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
    10. {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
    11. {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...' }
    12. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    13. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    14. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    15. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    16. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    17. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    18. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    19. {'ex_sldemo_clutch/Friction Mode Logic/Lockup...' }
    20. {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/lock' }
    21. {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock' }
    22. {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/locked' }
    23. {'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
    24. {'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
    25. {'ex_sldemo_clutch/Friction Mode Logic/locked' }
    26. {'ex_sldemo_clutch/Friction Mode Logic/lock' }
    27. {'ex_sldemo_clutch/Friction Mode Logic/unlock' }
    28. {'ex_sldemo_clutch/Friction Mode Logic/Tf' }
    29. {'ex_sldemo_clutch/Locked/Tin' }
    30. {'ex_sldemo_clutch/Locked/w' }
    31. {'ex_sldemo_clutch/Unlocked/Tfmaxk' }
    32. {'ex_sldemo_clutch/Unlocked/Tin' }
    33. {'ex_sldemo_clutch/Unlocked/we' }

    更新子系统中的库链接

            在本示例中,myModel 只包含一个子系统,它是一个库链接。上次打开模型后,向库中对应的子系统中添加了一个 Gain 模块。

            打开模型。使用 find_system 并将 'FollowLinks' 设置为 'off'。此命令不会跟随库链接进入子系统,并且只返回顶层子系统。

    1. open_system('myModel')
    2. find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'off')
    3. ans =
    4. 'myModel'
    5. 'myModel/Subsystem'

            使用 find_system 并将 'FollowLinks' 设置为 'on'。find_system 将更新库链接,并返回子系统中的模块。

    1. find_system(bdroot,'LookUnderMasks','on','FollowLinks','on')
    2. Updating Link: myModel/Subsystem/Gain
    3. Updating Link: myModel/Subsystem/Gain
    4. ans =
    5. 'myModel'
    6. 'myModel/Subsystem'
    7. 'myModel/Subsystem/Gain'

    以句柄形式返回值

            将该系统作为句柄提供给 find_system。搜索值为 0 的模块对话框参数。如果对同一个模块多次调用 get_param,则使用模块句柄比以字符向量形式指定完整模块路径更高效。

    1. load_system('vdp');
    2. sys = get_param('vdp','Handle');
    3. find_system(sys,'BlockDialogParams','0')
    4. ans = 8×1
    5. 3.0006
    6. 4.0006
    7. 8.0006
    8. 13.0006
    9. 14.0006
    10. 14.0006
    11. 15.0006
    12. 15.0006

  • 相关阅读:
    基于STM32的实时操作系统FreeRTOS移植教程(手动移植)
    四元数插值
    1205. 每月交易II
    操作系统:虚拟存储管理技术
    【计网 Socket编程】 中科大郑烇老师笔记 (九)
    数学分析:数项级数的概念
    Maven源码阅读(一)
    Nevron Vision for .NET 2023.1 Crack
    serveless 思想 Midway.js 框架使用教程(七)
    健康先行微信小程序设计与实现
  • 原文地址:https://blog.csdn.net/jk_101/article/details/132920770