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, которые являются дочерними элементами подсистемы Unlocked в 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'}

Копирайт 2020 The MathWorks, Inc.

Поиск в vdp и возвращает имена всех блоков Gain, значение Gain которых установлено в 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'}

При поиске с помощью регулярных выражений можно задать часть вектора символов, которая должна совпадать, чтобы вернуть все объекты, которые содержат этот вектор символов. Найдите все блоки inport и outport в 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 для того же блока использование указателя на блок более эффективно, чем указание полного пути к блоку в качестве вектора символов.

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' поиск в загруженных системах, исключая маскированные подсистемы, блоков Гото.

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

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

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

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

Опция включения в поиск линий, портов и аннотаций в системах, заданная как разделенная разделенными запятой парами, состоящая из 'FindAll' и 'on' или 'off'.Если для этой опции задано значение '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