find_system

Найдите системы, блоки, линии, порты и аннотации

Variants опция будет удалена. Используйте MatchFilter вместо этого. Для получения дополнительной информации см. Вопросы совместимости.

Описание

пример

Objects = find_system возвращает загруженные системы и их блоки, включая подсистемы.

пример

Objects = find_system(System) возвращает заданную систему и ее блоки.

пример

Objects = find_system(Name,Value) возвращает загруженные системы и объекты в тех системах, которые соответствуют критериям, заданным одним или несколькими Name,Value парные аргументы. Можно использовать этот синтаксис, чтобы задать поисковые ограничения и искать определенные значения параметров. Задайте поисковые ограничения перед парами значения и параметром.

пример

Objects = find_system(System,Name,Value) возвращает объекты в заданной системе, которые соответствуют заданным критериям.

Примеры

свернуть все

Возвратите имена всех загруженных систем и их блоков.

load_system('vdp')
find_system
ans = 15x1 cell
    {'vdp'                     }
    {'vdp/Constant'            }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Square'              }
    {'vdp/Sum'                 }
    {'vdp/Sum1'                }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

Возвращает загруженные системы и библиотеки, включая vdp.

Возвратите vdp система и ее блоки.

load_system({'vdp','ex_sldemo_clutch'})
find_system('vdp')
ans = 15x1 cell
    {'vdp'                     }
    {'vdp/Constant'            }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Square'              }
    {'vdp/Sum'                 }
    {'vdp/Sum1'                }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

Возвратите имена загруженных моделей, подсистем и библиотек. Имя подсистемы возвращено, только если подсистема может загрузиться независимо.

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

Возвратите имена всех блоков Goto, которые являются дочерними элементами Разблокированной подсистемы в ex_sldemo_clutch система.

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

Copyright 2020 The MathWorks, Inc.

Поиск в vdp система и возвращает имена всех блоков Усиления, значение Усиления которых установлено к 1.

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

Получите указатели всех линий и аннотаций в vdp система. С 'FindAll', функция возвращает указатели независимо от того, как вы задаете систему, чтобы искать.

load_system('vdp');
L = find_system('vdp','FindAll','on','type','line')
L = 19×1

   34.0044
   33.0044
   32.0044
   31.0044
   30.0044
   29.0044
   28.0044
   27.0044
   26.0044
   25.0044
      ⋮

A = find_system('vdp','FindAll','on','type','annotation')
A = 2×1

   36.0044
   35.0044

Найдите любые параметры диалогового окна блока со значением 0 в vdp и ex_sldemo_clutch системы.

load_system({'vdp','f14'})
find_system({'vdp','f14'},'BlockDialogParams','0')
ans =

  32×1 cell array

    {'vdp/More Info'                                              }
    {'vdp/More Info/Model Info'                                   }
    {'vdp/Scope'                                                  }
    {'vdp/x2'                                                     }
    {'vdp/Out1'                                                   }
    {'vdp/Out1'                                                   }
    {'vdp/Out2'                                                   }
    {'vdp/Out2'                                                   }
    {'f14/Aircraft↵Dynamics↵Model'                              }
    {'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
    {'f14/Aircraft↵Dynamics↵Model/Vertical Velocity↵w (ft//sec)'}
    {'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)'      }
    {'f14/Aircraft↵Dynamics↵Model/Pitch Rate↵q (rad//sec)'      }
				.
				.
				.

Найдите все блоки в верхнем уровне в настоящее время загруженных систем с диалоговым значением параметров блока, которое запускается с 3.

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

Когда вы ищете регулярные выражения использования, можно задать часть вектора символов, с которым вы хотите совпадать, чтобы возвратить все объекты, которые содержат тот вектор символов. Найдите весь импорт и блоки выходного порта в ex_sldemo_clutch модель.

load_system('ex_sldemo_clutch');
find_system('ex_sldemo_clutch','regexp','on','blocktype','port')
ans = 39x1 cell
    {'ex_sldemo_clutch/Friction...'                               }
    {'ex_sldemo_clutch/Friction...'                               }
    {'ex_sldemo_clutch/Friction...'                               }
    {'ex_sldemo_clutch/Friction Mode Logic/Tin'                   }
    {'ex_sldemo_clutch/Friction Mode Logic/Tfmaxs'                }
    {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'ex_sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/lock'       }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock'     }
    {'ex_sldemo_clutch/Friction Mode Logic/Lockup FSM/locked'     }
    {'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
    {'ex_sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
    {'ex_sldemo_clutch/Friction Mode Logic/locked'                }
    {'ex_sldemo_clutch/Friction Mode Logic/lock'                  }
    {'ex_sldemo_clutch/Friction Mode Logic/unlock'                }
    {'ex_sldemo_clutch/Friction Mode Logic/Tf'                    }
    {'ex_sldemo_clutch/Locked/Tin'                                }
    {'ex_sldemo_clutch/Locked/w'                                  }
    {'ex_sldemo_clutch/Unlocked/Tfmaxk'                           }
    {'ex_sldemo_clutch/Unlocked/Tin'                              }
    {'ex_sldemo_clutch/Unlocked/we'                               }
      ⋮

В этом примере, myModel содержит одну подсистему, которая является ссылкой библиотеки. После того, как модель была в последний раз открыта, блок Gain был добавлен к соответствующей подсистеме в библиотеке.

Откройте модель. Использование find_system с 'FollowLinks' установите на 'off'. Команда не переходит по ссылкам библиотеки в подсистему и возвращает только подсистему в верхнем уровне.

open_system('myModel')
find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'off')
ans = 

    'myModel'
    'myModel/Subsystem'

Использование find_system с 'FollowLinks' установите на 'on'. find_system обновляет ссылки библиотеки и возвращает блок в подсистеме.

find_system(bdroot,'LookUnderMasks','on','FollowLinks','on')
Updating Link: myModel/Subsystem/Gain
Updating Link: myModel/Subsystem/Gain

ans = 

    'myModel'
    'myModel/Subsystem'
    'myModel/Subsystem/Gain'

Предоставьте систему find_system как указатель. Ищите параметры диалогового окна блока со значением 0. Если вы выполняете множественные вызовы к get_param для того же блока, затем с помощью указателя блока более эффективно, чем определение полного блока path как вектор символов.

load_system('vdp');
sys = get_param('vdp','Handle');
find_system(sys,'BlockDialogParams','0')
ans = 8×1

    3.0046
    4.0046
    8.0046
   13.0046
   14.0046
   14.0046
   15.0046
   15.0046

Входные параметры

свернуть все

Система, чтобы искать в виде полного системного пути, массива ячеек системных путей, указателя или вектора из указателей.

Пример: 'MyModel/Subsystem1'

Пример: {'vdp','ex_sldemo_clutch'}

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'SearchDepth','0','LookUnderMasks','none','BlockType','Goto' поисковые запросы в загруженных системах, исключая подсистемы маскированные, для блоков Goto.

Когда вы используете find_system функция, Name,Value парные аргументы могут включать поисковые ограничения и пары значения и название параметра. Можно задать поисковые ограничения в любом порядке, но они должны предшествовать пары значения и название параметра.

Смотрите Специфичные для блока Параметры для списка параметров блоков.

Опция, чтобы искать параметры диалогового окна блока заданное значение в виде разделенной запятой пары, состоящей из 'BlockDialogParams' и вектор символов или строковый скаляр. Эта пара должна следовать за другими поисковыми ограничительными парами.

Опция, чтобы рассмотреть случай при соответствии в виде разделенной запятой пары, состоящей из 'CaseSensitive' и 'on' для чувствительного к регистру поиска или 'off'.

Опция, чтобы включать линии, порты и аннотации в системах в поиске в виде разделенной запятой пары, состоящей из 'FindAll' и 'on' или 'off'.When эта опция установлен в 'on', find_system возвращает вектор из указателей независимо от того, как вы задаете System аргумент.

Опция, чтобы возвратить только первый результат и затем остановить поиск в виде разделенной запятой пары, состоящей из 'FirstResultOnly' и 'on' или 'off'.

Опция, чтобы посмотреть в подсистеме, на которую ссылаются, в модели и перечислить дочерние блоки, заданные как разделенную запятой пару, состоящую из 'LookInsideSubsystemReference' и 'on' или 'off'.

Опция, чтобы перейти по ссылкам в библиотечные блоки в виде разделенной запятой пары, состоящей из 'FollowLinks' и 'on' или 'off'. Если вы не задаете систему, чтобы искать, find_system включает загруженные библиотеки в результаты, устанавливаете ли вы 'FollowLinks' к 'on' или 'off'. Можно использовать 'FollowLinks' с 'LookUnderMasks' обновить ссылки библиотеки в подсистемах. Смотрите Ссылки Библиотеки Обновления в Подсистеме.

Опция, чтобы включать прокомментированные блоки в поиск в виде разделенной запятой пары, состоящей из 'IncludeCommented' и 'on' или 'off'.

Опция, чтобы загрузить любые частично загруженные модели в виде разделенной запятой пары 'LoadFullyIfNeeded' и 'on' загружать модели или 'off' отключить загрузку. Используйте эту опцию, например, чтобы предотвратить предупреждения загрузки.

Опции для поиска под масками в виде разделенной запятой пары, состоящей из 'LookUnderMasks' и одна из этих опций:

  • 'graphical' — Поиск включает замаскированные подсистемы, которые не имеют никаких рабочих областей и никаких диалоговых окон.

  • 'none' — Поиск пропускает замаскированные подсистемы.

  • 'functional' — Поиск включает замаскированные подсистемы, которые не имеют диалоговых окон.

  • 'all' — Поиск включает все подсистемы маскированные.

  • 'on' — Поиск включает все подсистемы маскированные.

  • 'off' — Поиск пропускает замаскированную подсистему.

Опция, чтобы обработать поисковые выражения как регулярные выражения, заданные как разделенная запятой пара, состоящая из 'RegExp' и 'on' обрабатывать поисковые выражения как регулярные выражения или 'off'. Чтобы узнать больше о регулярных выражениях MATLAB®, смотрите Регулярные выражения.

Опция, чтобы ограничить поисковую глубину заданным уровнем в виде разделенной запятой пары, состоящей из 'SearchDepth' и положительный целочисленный вектор символов или строковый скаляр. Например, задайте '0' искать загруженные системы только, '1' для блоков и подсистем системы верхнего уровня, '2' для системы верхнего уровня и ее дочерних элементов, и т.д. Значение по умолчанию должно искать все уровни.

Опции для поиска вариантов в виде разделенной запятой пары, состоящей из 'Variants' и одна из этих опций:

  • 'ActiveVariants' — Ищите только активный вариант в Variant Subsystem.

  • 'AllVariants' — Ищите все варианты в Variant Subsystem.

  • 'ActivePlusCodeVariants' — Ищите все варианты в Variant Subsystem, которые активны в симуляции, и часть сгенерированного кода.

Примечание

Это поисковое ограничение применяется только к блокам Variant Subsystem, которым установили Variant control mode на expression или label. Используйте find_system функция с MatchFilter опция, чтобы работать со всеми типами различных блоков.

Указатель на функцию, чтобы совпадать с элементами в поиске, такими как блоки, система, линии, порты и аннотации. Используйте MatchFilter определить, должны ли элементы быть включены или пропущены в поиске.

Именованная функция должна быть задана в файле программы MATLAB. Функция берет указатель элемента, как введено и возвращает два выходных параметра.

 function [match, prune] = func(element)
 
  • Вход element указатель обрабатываемого блока.

  • Первый выход, match, логическое значение. Если false, ищите пропускает элемент.

  • Второй выход, prune, дополнительное логическое значение, которое только применяется когда element подсистема. Значением по умолчанию является false. Если это значение установлено к true, целая подсистема не использована от поиска.

Пример: используйте MatchFilter чтобы найти все не, Inport и Outport блокируются в модели с помощью собственной заданной функции filter, nonInOutBlocks:

function match = nonInOutBlocks(handle)
match = true;
if strcmp(get_param(handle, 'Type'), 'block')
  blockType = get_param(handle, 'BlockType');
  if strcmp(blockType, 'Inport') || ...
        strcmp(blockType,  'Outport')
      match = false;
  end
end
end
load_system('vdp');
blks = find_system('vdp', 'MatchFilter', @nonInOutBlocks)

Варианты: Simulink обеспечивает Simulink.match.activeVariants и Simulink.match.codeCompileVariants совпадайте с функциями filter для различных блоков, которые можно использовать, чтобы найти, что активные варианты или код компилируют различные блоки. Для этого скомпилируйте модель и примените соответствующий MatchFilter опции:

  • Simulink.match.activeVariants - Блоки соответствий, которые активны в симуляции после компиляции модели

  • Simulink.match.codeCompileVariants - Блоки соответствий, которые являются частью сгенерированного кода после компиляции модели

Пример: используйте Simulink.match.activeVariants опция, чтобы найти активные варианты в модели:

addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
model='sldemo_variant_subsystems';
load_system(model);
assignin('base','VSS_MODE',2);
set_param(model, 'SimulationCommand', 'update');
activeBlks = find_system(model, 'MatchFilter', @Simulink.match.activeVariants);

Пример: используйте Simulink.match.codeCompileVariants опция, чтобы найти варианты, которые являются частью сгенерированного кода C:

addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
load_system('sldemo_variant_subsystems');
assignin('base','VSS_MODE',2);
sldemo_variant_subsystems([], [], [], 'compileForRTW');
activeBlks= find_system('sldemo_variant_subsystems', 'MatchFilter', @Simulink.match.codeCompileVariants);
sldemo_variant_subsystems([], [], [], 'term');

Выходные аргументы

свернуть все

Найденные соответствующие объекты, возвратились как:

  • Массив ячеек путей, если вы задали System как путь или массив ячеек путей, или если вы не задавали систему

  • Вектор из указателей, если вы задали System как указатель или вектор из указателей

Вопросы совместимости

развернуть все

Предупреждает запуск в R2021a

Поведение изменяется в R2021a

Представлено до R2006a