Main Content

Selector

벡터, 행렬 또는 다차원 신호의 입력 요소 선택

  • Selector block

라이브러리:
Simulink / Signal Routing
HDL Coder / Signal Routing

설명

Selector 블록은 지정된 인덱스를 기반으로 입력 벡터, 행렬 또는 다차원 신호에서 선택된 요소를 추출합니다. 추출된 신호는 입력 신호와 다르게 그룹화될 수 있습니다.

입력 차원 수 파라미터에 입력한 값에 따라 인덱싱 설정의 테이블이 표시됩니다. 테이블의 각 행은 입력 차원 수의 입력 차원에 하나씩 대응됩니다. 각 차원에 대해 사용할 신호의 요소를 정의할 수 있습니다. 벡터 신호를 1차원 신호로 지정하고, 행렬 신호를 2차원 신호로 지정하십시오. 다차원 신호 연산에 사용하도록 Selector 블록을 구성하면 블록 아이콘이 변경됩니다.

예를 들어 1부터 시작하는 인덱스 모드를 사용하는 6차원 신호를 가정해 보겠습니다. Selector 블록 대화 상자의 테이블은 각 차원에 대응하는 행을 하나씩 포함하도록 변경됩니다. 다음 표에 표시된 것처럼 차원을 정의하는 경우 출력은 Y = U(1:end,2:6,[1 3 5],Idx4:Idx4+7,Idx5,Idx6(1):Idx6(2))입니다. 여기서 Idx4, Idx5, Idx6은 차원 4, 5, 6에 대한 인덱스 포트입니다.

인덱스 옵션인덱스출력 크기
1모두 선택  
2시작 인덱스(대화 상자)25
3인덱스 벡터(대화 상자)[1 3 5] 
4시작 인덱스(포트) 8
5인덱스 벡터(포트)  
6시작 인덱스 및 끝 인덱스(포트)  

버스로 구성된 배열을 Selector 블록에 대한 입력 신호로 사용할 수 있습니다. 버스로 구성된 배열의 정의와 사용에 대한 자세한 내용은 Group Nonvirtual Buses in Arrays of Buses 항목을 참조하십시오.

예제

모두 확장

이 예제에서는 입력 신호의 종류는 같지만 인덱스 옵션 설정이 서로 다른 두 개의 Selector 블록을 보여줍니다.

두 Selector 블록 모두 입력 포트로 전달되는 입력 신호에서 7개의 값을 선택합니다. Selector1 블록은 고정된 크기의 신호를 출력하는 반면, Selector2 블록은 컴파일된 신호 차원이 7이 아니라 10인 가변 크기의 신호를 출력합니다.

Selector1 블록은 인덱스 옵션Index vector (port)로 설정하며, 이에 의해 Constant1로부터의 입력 신호가 인덱스 벡터로 사용됩니다. 입력 신호의 차원이 7이므로 Display 블록은 Constant1 블록의 7개 값을 보여줍니다. Selector2 블록은 입력 포트 크기 파라미터를 10으로 설정하며 이는 Selector2 블록의 입력 신호 중 가장 큰 신호의 크기입니다.

또한, Selector2 블록은 인덱스 옵션Starting and ending indices (port)로 설정합니다. 그러면 입력 신호의 크기가 7이더라도 출력값은 입력 포트 크기 파라미터의 크기(10)로 설정됩니다.

제한 사항

  • 인덱스 파라미터는 시뮬레이션 도중에는 조정이 불가능합니다. 차원에 대한 인덱스 옵션인덱스 벡터(대화 상자) 또는 시작 인덱스(대화 상자)로 설정되고 블록 대화 상자의 해당되는 인덱스에 대해 Simulink.Parameter 객체 등 기호 값을 지정하면 시뮬레이션 시작 순간의 값이 시뮬레이션 전체에서 사용되며 파라미터는 생성된 코드에서의 인라인 값으로 나타납니다. Tune and Experiment with Block Parameter Values 항목을 참조하십시오. 인덱스 포트를 사용하여 선택 인덱스를 동적으로 조정할 수 있습니다.

포트

입력

모두 확장

입력 신호이고 출력 신호에 대한 요소의 소스입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image

해당 출력 요소를 선택하기 위한 인덱스를 지정하는 외부 포트입니다.

사용자 지정 너비를 갖는 정수(예: 15비트 정수 또는 23비트 정수)를 인덱스 신호 값으로 지정할 수 있습니다. 정수의 너비를 구성할 때 모드고정소수점으로 지정하고 워드 길이는 128 이하, 기울기는 1, 편향은 0으로 지정해야 합니다. 고정소수점 데이터형 지정에 대한 자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.

종속성

외부 인덱스 포트를 활성화하려면, 인덱스 옵션 테이블의 해당 행에서 인덱스 옵션인덱스 벡터(포트), 시작 인덱스(포트) 또는 시작 인덱스 및 끝 인덱스(포트)로 설정하십시오.

데이터형: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

출력

모두 확장

입력 신호에서 선택되거나 재정렬된 요소로부터 생성된 출력 신호입니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image

파라미터

모두 확장

입력 신호의 차원 수를 지정합니다.

프로그래밍 방식의 사용법

블록 파라미터: NumberOfDimensions
유형: 문자형 벡터
값: integer
디폴트 값: '1'

인덱싱 모드를 지정합니다. One-based가 선택되면 인덱스 1이 입력 벡터의 첫 번째 요소를 지정합니다. Zero-based가 선택되면 인덱스 0이 입력 벡터의 첫 번째 요소를 지정합니다.

프로그래밍 방식의 사용법

블록 파라미터: IndexMode
유형: 문자형 벡터
값: 'One-based' | 'Zero-based'
디폴트 값: 'One-based'

차원을 기준으로 신호의 요소를 인덱싱할 방법을 정의합니다. 목록에서 다음을 선택합니다.

  • 모두 선택

    추가 구성은 필요하지 않습니다. 모든 요소가 선택됩니다.

  • 인덱스 벡터(대화 상자)

    인덱스 열을 활성화합니다. 요소의 인덱스로 구성된 벡터를 입력하십시오.

  • 인덱스 벡터(포트)

    추가 구성은 필요하지 않습니다.

  • 시작 인덱스(대화 상자)

    인덱스 열과 출력 크기 열을 활성화합니다. 인덱스 열에 선택할 요소 범위의 시작 인덱스를 입력하고 출력 크기 열에 선택할 요소의 개수를 입력하십시오.

  • 시작 인덱스(포트)

    출력 크기 열을 활성화합니다. 출력 크기 열에 선택할 요소의 개수를 입력하십시오.

  • 시작 인덱스 및 끝 인덱스(포트)

    추가 구성은 필요하지 않습니다.

    이 옵션을 사용하면 가변 크기 출력 신호가 생성됩니다. 업데이트하면 출력 차원이 입력 신호 차원과 동일하게 설정됩니다. 실행 중에 출력 차원은 인덱스를 전달하는 신호에 따라 업데이트됩니다.

    출력 신호 데이터를 기록할 때, 선택되지 않은 신호는 NaN 값으로 채워집니다.

필요에 따라 인덱스 열과 출력 크기 열이 표시됩니다.

프로그래밍 방식의 사용법

블록 파라미터: IndexOptionArray
유형: 문자형 벡터
값: 'Select all' | 'Index vector (dialog)' | 'Index option (port)' | 'Starting index (dialog)' | 'Starting index (port)' | Starting and ending indices (port)
디폴트 값: 'Index vector (dialog)'

인덱스 옵션인덱스 벡터(대화 상자)이면 관심 있는 각 요소의 인덱스를 입력합니다.

인덱스 옵션시작 인덱스(대화 상자)이면 선택할 요소 범위의 시작 인덱스를 입력합니다.

프로그래밍 방식의 사용법

블록 파라미터: IndexParamArray
유형: 문자형 벡터
값: 셀형 배열
디폴트 값: '{ }'

블록 출력 신호의 너비를 지정합니다.

프로그래밍 방식의 사용법

블록 파라미터: OutputSizeArray
유형: 문자형 벡터
값: 셀형 배열
디폴트 값: '{ }'

1차원 신호의 블록 입력 신호 너비를 지정합니다. 구동 블록에서 상속하려면 -1을 입력하십시오.

프로그래밍 방식의 사용법

블록 파라미터: InputPortWidth
유형: 문자형 벡터
값: integer
디폴트 값: '3'

샘플 간의 시간 간격을 지정합니다. 샘플 시간을 상속하려면 이 파라미터를 -1로 설정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.

종속성

이 파라미터는 -1 이외의 값으로 설정한 경우에만 표시됩니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 스칼라 또는 문자형 벡터
디폴트 값: "-1"

Simulink®가 액셀러레이터 또는 고속 액셀러레이터 모드에서 시뮬레이션하는 동안 입력 신호의 관련 차원에 대한 유효 인덱스 범위를 벗어나는 인덱스 값이 있는지 검사하도록 하려면 이 체크박스를 선택합니다. 인덱스가 범위 밖에 있다면 Simulink는 시뮬레이션을 중단하고 오류 메시지를 표시합니다.

참고

이 체크박스를 선택하지 않으면 범위 밖 인덱스 값이 액셀러레이터 또는 고속 액셀러레이터 모드의 시뮬레이션 도중에 정의되지 않은 동작으로 이어질 수 있습니다.

Simulink는 일반 모드의 시뮬레이션 도중에는 이 체크박스 선택 여부와 무관하게 이 검사를 수행합니다.

프로그래밍 방식의 사용법

파라미터: RuntimeRangeChecks
유형: 문자형 벡터
값: 'Off' | 'On'
디폴트 값: 'Off'

블록 특성

데이터형

Boolean | double | enumerated | fixed point | half | integer | single

직접 피드스루

아니요

다차원 신호

가변 크기 신호

영점교차 검출

아니요

확장 기능

C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| |