Simulink.FindOptions
모델과 서브시스템에서 블록을 찾기 위한 옵션 지정
설명
Simulink.FindOptions
객체를 사용하면 Simulink.findBlocks
함수와 Simulink.findBlocksOfType
함수를 사용하여 검색을 제한할 수 있습니다.
생성
속성
일치할 경우 대/소문자를 고려하는 옵션으로, 'CaseSensitive'
와 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다.
데이터형: logical
모델 내의 참조된 서브시스템의 내부를 탐색하여 자식 블록을 나열하는 옵션으로, 'LookInsideSubsystemReference'
와 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다.
모델에 있는 블록 내부를 검색하여 자식 블록을 나열하는 옵션으로, true
또는 false
로 지정됩니다.
링크를 따라 라이브러리 블록으로 가는 옵션으로, 'FollowLinks'
와 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다. 검색할 모델을 지정하지 않은 경우 find_system
은 'FollowLinks'
를 true
으로 설정했든 false
로 설정했든지에 상관없이 불러온 라이브러리를 검색 결과에 포함합니다. 'FollowLinks'
를 'LookUnderMasks'
와 함께 사용하여 서브시스템 내의 라이브러리 링크를 업데이트할 수 있습니다. 서브시스템에서 라이브러리 링크 업데이트하기 항목을 참조하십시오.
데이터형: logical
주석 처리된 블록을 검색에 포함하는 옵션으로, 'IncludeCommented'
와 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다.
데이터형: logical
부분적으로 불러온 모델을 불러오는 옵션으로, 'LoadFullyIfNeeded'
와 함께 true
(모델을 불러옴) 또는 false
(불러오기를 비활성화함)가 쉼표로 구분되어 지정됩니다. 예를 들어, 불러오기 경고를 방지하려면 이 옵션을 사용합니다.
마스크 내부를 검색하는 옵션으로, 'LookUnderMasks'
와 함께 다음 옵션 중 하나가 쉼표로 구분되어 지정됩니다.
'none'
— 마스크 처리된 서브시스템을 검색에서 건너뜁니다.'all'
— 마스크 처리된 서브시스템을 모두 검색에 포함합니다.'functional'
— 파라미터, 설명, 도움말 문자열, UI 요소 없이 아이콘 그리기 명령 또는 마스크 초기화 명령이 있는 마스크 처리된 서브시스템을 검색에 포함합니다.'graphical'
— 작업 공간, 대화 상자, 도움말 문자열, UI 요소 없이 아이콘 그리기 명령만 있는 마스크 처리된 서브시스템을 검색에 포함합니다.
데이터형: char
| string
검색 표현식을 정규 표현식으로 처리하는 옵션으로, 'RegExp'
와 함께 true
또는 false
가 쉼표로 구분되어 지정됩니다. 'RegExp'
를 true
으로 설정하면 검색할 때 검색 표현식을 정규 표현식으로 처리합니다. MATLAB® 정규 표현식에 대한 자세한 내용은 정규 표현식 항목을 참조하십시오.
데이터형: logical
검색 심도를 지정된 수준으로 제한하는 옵션으로, 'SearchDepth'
와 함께 양의 정수 문자형 벡터 또는 string형 스칼라가 쉼표로 구분되어 지정됩니다. 예를 들어, 불러온 모델만 검색하려면 0
을, 모델 계층 구조의 최상위 수준의 블록과 서브시스템을 검색하려면 1
을, 모델 계층 구조의 최상위 수준과 그 자식을 검색하려면 2
를 지정하는 식입니다. 디폴트 값 -1
은 모든 수준을 검색합니다.
데이터형: int32
참고
Variants
인수는 제거될 예정입니다. MatchFilter
를 대신 사용하십시오. 자세한 내용은 버전 내역 항목을 참조하십시오.
Variant를 검색하는 옵션으로, 'Variants'
와 함께 다음 옵션 중 하나가 쉼표로 구분되어 지정됩니다.
'ActiveVariants'
— Variant Subsystem에서 활성 Variant 선택지만 검색합니다.'AllVariants'
— Variant Subsystem에서 모든 Variant 선택지를 검색합니다.'ActivePlusCodeVariants'
— 시뮬레이션에서 활성 상태이면서 생성 코드의 일부가 되는 모든 Variant 선택지를 Variant Subsystem에서 검색합니다.
이 검색 제약 조건은 Variant 제어 모드가 expression
또는 label
로 설정된 Variant Subsystem 블록에만 적용됩니다. 모든 유형의 Variant 블록에 대해 동작하도록 하려면 find_system
함수를 MatchFilter
옵션과 함께 사용하십시오.
데이터형: char
| string
검색에서 블록, 모델, 선, 포트, 주석 등의 요소를 일치시키고 필터링하는 옵션으로, 함수 핸들로 지정됩니다. 요소를 검색에 포함할지 검색에서 건너뛸지를 결정하려면 MatchFilter
를 사용하십시오.
이 인수를 통해 다음이 가능합니다.
사용자 지정 필터 함수로 요소를 필터링할 수 있습니다.
필터가 일치하지 않을 때 요소가 처리되는 것을 방지할 수 있습니다.
내부적으로 결과를 필터링하도록 블록, 선 또는 주석에 복합 필터를 적용할 수 있습니다.
명명된 함수는 MATLAB 프로그램 파일 내에서 정의해야 합니다. 이 함수는 요소의 핸들을 입력으로 받아 두 개의 출력을 반환합니다.
function [match, prune] = func(element)
입력
element
는 처리 중인 컴포넌트의 핸들(예: 블록 핸들)입니다.첫 번째 출력
match
는 논리값입니다.false
인 경우 요소를 검색에서 건너뜁니다.두 번째 출력
prune
은 선택적 논리값으로,element
가 서브시스템인 경우에만 적용됩니다. 디폴트 값은false
입니다. 이 값이true
로 설정된 경우 검색에서 전체 서브시스템이 제외됩니다.
Variant: Simulink®는 Variant 블록을 찾기 위해 다음과 같이 내장된 일치 필터 함수를 제공합니다.
컴파일 후 시간 필터 함수:
Simulink.match.activeVariants
— 모델 컴파일 후 시뮬레이션에서 활성 상태인 블록을 찾는 필터 함수.Simulink.match.codeCompileVariants
— 모델 컴파일 후 생성 코드의 일부가 되는 블록을 찾는 필터 함수.Simulink.match.allVariants
— 블록의 상태가 Variant에 따라 활성이든 비활성이든 상관없이 모든 블록을 찾는 필터 함수.
참고
정확한 결과를 얻으려면 Simulink.match.activeVariants
필터와 Simulink.match.codeCompileVariants
필터를 사용하기 전에 먼저 모델을 컴파일해야 합니다. 모델이 컴파일되지 않았으면 필터는 모델의 모든 블록을 반환합니다.
이러한 필터의 컴파일 전/후 결과를 비교하는 예제는 Variant 블록에 대한 일치 필터의 컴파일 전/후 동작 비교하기 항목을 참조하십시오.
Variant Subsystem 블록에 대한 편집 시 필터 함수:
Simulink.match.legacy.filterOutCodeInactiveVariantSubsystemChoices
— 시뮬레이션에서 활성 상태이거나 생성 코드의 일부가 되는 Variant Subsystem 선택지 블록을 찾는 필터 함수입니다. 이 함수는Variants
인수의'ActivePlusCodeVariants'
옵션과 유사한 결과를 낳습니다.Simulink.match.legacy.filterOutInactiveVariantSubsystemChoices
— 활성 Variant Subsystem 선택지 블록을 찾는 필터 함수입니다. 이 함수는Variants
인수의'ActiveVariants'
옵션과 유사한 결과를 낳습니다.
편집 시 필터의 제한 사항:
필터는 CompiledVariantInfo 블록 파라미터의 컴파일 후 블록 활성 상태 정보를 사용하지 않습니다.
필터는 다음 블록 파라미터 설정을 가진 Variant Subsystem 블록에만 적용됩니다.
Variant 제어 모드가
표현식
또는레이블
로 설정됨Variant Subsystem 외부에 조건 전파가
off
로 설정됨
이 필터는
find_system
,find_mdlrefs
,Simulink.FindOptions
의 컨텍스트 내에서 사용할 때만 블록 핸들이 Variant Subsystem의 활성 선택지 내에 있는지 식별할 수 있습니다.
모든 유형의 Variant 블록에 대해 동작하도록 하려면 모델 컴파일 후 Simulink.match.codeCompileVariants
또는 Simulink.match.activeVariants
필터를 사용하십시오.
예제
검색 심도를 1
로 지정하는 Simulink.FindOptions
객체를 생성합니다.
f = Simulink.FindOptions('SearchDepth',1);
FindOptions
객체를 사용하여 서브시스템에서 이름이 Unlocked
인 모든 블록을 검색하지만, 자식에서는 검색하지 않습니다.
openExample('sldemo_clutch'); bh = Simulink.findBlocks('sldemo_clutch/Unlocked',f);
Simulink.findBlocks
함수는 블록 핸들을 반환합니다.
블록 경로를 가져오려면 getfullname
함수를 사용하십시오.
bp = getfullname(bh)
bp = 20×1 cell array {'sldemo_clutch/Unlocked/Tfmaxk' } {'sldemo_clutch/Unlocked/Tin' } {'sldemo_clutch/Unlocked/Enable' } {'sldemo_clutch/Unlocked/E_Sum' } {'sldemo_clutch/Unlocked/Engine↵Damping' } {'sldemo_clutch/Unlocked/Engine↵Inertia' } {'sldemo_clutch/Unlocked/Engine↵Integrator' } {'sldemo_clutch/Unlocked/Goto' } {'sldemo_clutch/Unlocked/Goto1' } {'sldemo_clutch/Unlocked/Max↵Dynamic↵Friction↵Torque'} {'sldemo_clutch/Unlocked/V_Sum' } {'sldemo_clutch/Unlocked/Vehicle↵Damping' } {'sldemo_clutch/Unlocked/Vehicle↵Inertia' } {'sldemo_clutch/Unlocked/Vehicle↵Integrator' } {'sldemo_clutch/Unlocked/W_Slip' } {'sldemo_clutch/Unlocked/slip direction' } {'sldemo_clutch/Unlocked/w0' } {'sldemo_clutch/Unlocked/w0 ' } {'sldemo_clutch/Unlocked/we' } {'sldemo_clutch/Unlocked/wv' }
모델 vdp
에서 이득 값이 1
부터 10
사이인 모든 Gain 블록을 찾기 위해 사용자 지정 필터 함수와 함께 MatchFilter
인수를 사용합니다.
사용자 지정 함수는 파일 gainOneToTen.m
에 정의되어 있습니다.
function match = gainOneToTen(blk) match = false; if strcmp(get_param(blk,'Type'),'block') ... && strcmp(get_param(blk,'BlockType'),'Gain') gainValue = str2double(get_param(blk,'Gain')); match = gainValue >= 1 && gainValue <= 10; end end
함수 핸들을 MatchFilter
인수의 값으로 제공합니다.
load_system('vdp'); findOptObj = Simulink.FindOptions('MatchFilter',@gainOneToTen); blks = getfullname((Simulink.findBlocks('vdp',findOptObj)));
slexVariantSubsystems
모델을 불러옵니다.
model = 'slexVariantSubsystems'; load_system(model); assignin('base','VSS_MODE',2);
모델의 활성 Variant를 찾으려면 Simulink.match.activeVariants
와 함께 MatchFilter
옵션을 사용합니다.
set_param(model,'SimulationCommand','update'); findOptObj = Simulink.FindOptions('MatchFilter',@Simulink.match.activeVariants); blks = getfullname((Simulink.findBlocks(model,findOptObj)));
생성된 C 코드의 일부가 되는 Variant 선택지를 찾기 위해 Simulink.match.codeCompileVariants
와 함께 MatchFilter
옵션을 사용합니다.
slexVariantSubsystems([],[],[],'compileForCodegen'); findOptObj = Simulink.FindOptions('MatchFilter',@Simulink.match.codeCompileVariants); blks = getfullname((Simulink.findBlocks(model,findOptObj))); slexVariantSubsystems([],[],[],'term');
모델의 모든 블록을 찾으려면 Simulink.match.allVariants
와 함께 MatchFilter
옵션을 사용합니다.
findOptObj = Simulink.FindOptions('MatchFilter',@Simulink.match.allVariants);
blks = getfullname((Simulink.findBlocks(model,findOptObj)));
시뮬레이션에서 활성 상태이거나 편집 시 생성 코드의 일부가 되는 Variant Subsystem 선택지 블록을 찾으려면 Simulink.match.legacy.filterOutCodeInactiveVariantSubsystemChoices
와 함께 MatchFilter
옵션을 사용합니다. 편집 시 필터의 제한 사항에 대한 자세한 내용은 MatchFilter 항목을 참조하십시오.
findOptObj = Simulink.FindOptions('MatchFilter',@Simulink.match.legacy.filterOutCodeInactiveVariantSubsystemChoices);
blks = getfullname((Simulink.findBlocks(model,findOptObj)));
편집 시 활성 Variant Subsystem 선택지 블록을 찾으려면 Simulink.match.legacy.filterOutInactiveVariantSubsystemChoices
와 함께 MatchFilter
옵션을 사용합니다. 편집 시 필터의 제한 사항에 대한 자세한 내용은 MatchFilter 항목을 참조하십시오.
findOptObj = Simulink.FindOptions('MatchFilter',@Simulink.match.legacy.filterOutInactiveVariantSubsystemChoices);
blks = getfullname((Simulink.findBlocks(model,findOptObj)));
버전 내역
R2018a에 개발됨모델과 그 참조 항목에 있는 블록의 내부를 검색하는 것을 활성화하려면 LookUnderModelBlocks
속성을 true
로 설정합니다.
내장 일치 필터인 Simulink.match.allVariants
를 사용하여, 블록의 상태가 Variant에 따라 활성이든 비활성이든 상관없이 Variant 모델에 있는 모든 블록을 찾을 수 있습니다. 이 필터가 AllVariants
대신 권장되는 대체 옵션입니다.
제거될 예정임 | 권장되는 대체 옵션 |
---|---|
findOptObj= Simulink.FindOptions('Variants', ... 'AllVariants'); | findOptObj= Simulink.FindOptions('MatchFilter', ... @Simulink.match.allVariants); |
향후 릴리스에서 Variants
옵션은 Simulink.FindOptions
에서 제거될 예정입니다. Variants
옵션을 사용하는 스크립트는 계속 작동하지만 경고가 발생합니다.
Simulink.FindOptions
객체를 Variants
인수와 함께 사용하면 검색 결과가 일관되지 않습니다. Simulink.FindOptions
는 편집 시 사용되지만 모든 유형의 Variant 블록을 갖고 있는 모델에서 블록이 활성 상태인지 확인하려면 모델을 컴파일해야 합니다.
시뮬레이션 또는 코드 생성 중에 활성 상태인 Variant 블록을 찾으려면, 모델을 컴파일하고 Simulink.FindOptions
객체를 MatchFilter
옵션과 함께 사용하십시오.
다음 표에는 Variants
옵션의 각기 다른 값에 대해 권장되는 대체 옵션이 나와 있습니다.
제거될 예정임 | 권장되는 대체 옵션 |
---|---|
findOptObj= Simulink.FindOptions('Variants', ... 'ActiveVariants'); | set_param(model,'SimulationCommand','update'); findOptObj= Simulink.FindOptions('MatchFilter', ... @Simulink.match.activeVariants); |
findOptObj= Simulink.FindOptions('Variants', ... 'ActivePlusCodeVariants'); | model([], [], [], 'compileForCodegen'); findOptObj = Simulink.FindOptions('MatchFilter', ... @Simulink.match.codeCompileVariants); blks=getfullname((Simulink.findBlocks(model,findOptObj))); model([], [], [], 'term'); |
Simulink.FindOptions
객체를 사용할 때 MatchFilter
인수와 Variants
인수를 둘 다 지정할 수는 없습니다.
다음 명령은 오류를 생성합니다.
f = Simulink.FindOptions('MatchFilter',... @Simulink.match.activeVariants, 'Variants', 'ActiveVariants'); blocks=Simulink.findBlocks('sldemo_variant_subsystems',f)
검색 중에 일치하는 모델 요소를 찾고 필터링하기 위해, 사용자 지정 필터 함수를 정의하고 함수 핸들을 MatchFilter
옵션에 값으로 전달할 수 있습니다.
시뮬레이션에서 활성 상태이거나 생성 코드의 일부가 되는 Variant 블록을 찾으려면, 모델을 컴파일한 후에 내장 일치 필터 함수 Simulink.match.activeVariants
, Simulink.match.codeCompileVariants
, Simulink.match.allVariants
를 사용합니다.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)