find_system

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

Описание

пример

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','fuelsys'})
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, которые являются дочерними элементами Разблокированной подсистемы в sldemo_clutch система.

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

Поиск в 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.0052
   33.0052
   32.0052
   31.0052
   30.0052
   29.0052
   28.0052
   27.0052
   26.0052
   25.0052
      ⋮

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

   36.0052
   35.0052

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

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

    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'
    'fuelsys/Constant2'
    'fuelsys/Constant4'
    'fuelsys/Constant5'
    'fuelsys/engine …'
    'fuelsys/engine …'
    'fuelsys/engine …'
    'fuelsys/engine …'
				.
				.
				.

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

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

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

load_system('sldemo_clutch');
find_system('sldemo_clutch','regexp','on','blocktype','port')
ans = 39x1 cell
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction Mode Logic/Tin'                   }
    {'sldemo_clutch/Friction Mode Logic/Tfmaxs'                }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/lock'       }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock'     }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/locked'     }
    {'sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
    {'sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
    {'sldemo_clutch/Friction Mode Logic/locked'                }
    {'sldemo_clutch/Friction Mode Logic/lock'                  }
    {'sldemo_clutch/Friction Mode Logic/unlock'                }
    {'sldemo_clutch/Friction Mode Logic/Tf'                    }
    {'sldemo_clutch/Locked/Tin'                                }
    {'sldemo_clutch/Locked/w'                                  }
    {'sldemo_clutch/Unlocked/Tfmaxk'                           }
    {'sldemo_clutch/Unlocked/Tin'                              }
    {'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.0055
    4.0055
    8.0055
   13.0055
   14.0055
   14.0055
   15.0055
   15.0055

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

свернуть все

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

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

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

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

Задайте дополнительные разделенные запятой пары 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' — Поиск только в активных различных подсистемах.

  • 'AllVariants' — Поиск во всех вариантах.

  • 'ActivePlusCodeVariants' — Ищите все варианты, если кто-либо генерирует условные выражения препроцессора. В противном случае ищите только активный вариант.

Примечание

Это поисковое ограничение применяется только к различным подсистемам. Чтобы работать над всеми другими различными блоками, используйте Варианты опция MatchFilter.

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

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

blks = find_system('ModelName', 'MatchFilter', @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

В этом примере показано, как использовать MatchFilter со вторым выходным аргументом prune.

 [match, prune] = fcn(element)
 where
  element - Handle of the block being processed.
  match   - Logical. If false, skip the element.
  prune   - Optional logical (default false). If true, do not look in subsystems.

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

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

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

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

set_param(model, 'SimulationCommand', 'update');
activeBlks = find_system(model, 'MatchFilter', @Simulink.match.activeVariants);

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

 MODEL([],[],[],'compileForRTW')
 find_system(MODEL, 'MatchFilter', @Simulink.match.codeCompileVariants);
 MODEL([],[],[],'term')

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

свернуть все

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

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

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

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