이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
Selector
벡터, 행렬 또는 다차원 신호의 입력 요소 선택
라이브러리:
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 | 시작 인덱스(대화 상자) | 2 | 5 |
3 | 인덱스 벡터(대화 상자) | [1 3 5] | |
4 | 시작 인덱스(포트) | 8 | |
5 | 인덱스 벡터(포트) | ||
6 | 시작 인덱스 및 끝 인덱스(포트) |
버스로 구성된 배열을 Selector 블록에 대한 입력 신호로 사용할 수 있습니다. 버스로 구성된 배열의 정의와 사용에 대한 자세한 내용은 Group Nonvirtual Buses in Arrays of Buses 항목을 참조하십시오.
예제
Selector 블록에서의 인덱스 옵션
이 예제에서는 입력 신호의 종류는 같지만 인덱스 옵션 설정이 서로 다른 두 개의 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)로 설정됩니다.
확장 예제
유계 가변 크기 신호의 기본 연산
이 예제에서는 유계 가변 크기 신호를 생성하는 방법을 보여주고 이러한 신호를 사용하는 일부 연산을 보여줍니다. 이 예제에서는 Selector 블록과 Switch 블록을 사용하여 가변 크기 신호를 생성합니다. 이 신호는 수학 연산, 버스 생성, 버스 선택, 행렬 결합 및 이산 필터 방정식 구현에 사용됩니다.
Multimode Variable-Size Signal
Use different operation modes to correspond to different signal sizes.
제한 사항
인덱스 파라미터는 시뮬레이션 도중에는 조정이 불가능합니다. 차원에 대한 인덱스 옵션이
인덱스 벡터(대화 상자)
또는시작 인덱스(대화 상자)
로 설정되고 블록 대화 상자의 해당되는 인덱스에 대해Simulink.Parameter
객체 등 기호 값을 지정하면 시뮬레이션 시작 순간의 값이 시뮬레이션 전체에서 사용되며 파라미터는 생성된 코드에서의 인라인 값으로 나타납니다. Tune and Experiment with Block Parameter Values 항목을 참조하십시오. 인덱스 포트를 사용하여 선택 인덱스를 동적으로 조정할 수 있습니다.
포트
입력
Port_1 — 입력 신호
스칼라 | 벡터 | 행렬 | 다차원
입력 신호이고 출력 신호에 대한 요소의 소스입니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
IndxN — N
번째 인덱스 신호
스칼라 | 벡터 | 행렬
해당 출력 요소를 선택하기 위한 인덱스를 지정하는 외부 포트입니다.
사용자 지정 너비를 갖는 정수(예: 15비트 정수 또는 23비트 정수)를 인덱스 신호 값으로 지정할 수 있습니다. 정수의 너비를 구성할 때 모드를 고정소수점
으로 지정하고 워드 길이는 128 이하, 기울기는 1, 편향은 0으로 지정해야 합니다. 고정소수점 데이터형 지정에 대한 자세한 내용은 Specify Data Types Using Data Type Assistant 항목을 참조하십시오.
종속성
외부 인덱스 포트를 활성화하려면, 인덱스 옵션 테이블의 해당 행에서 인덱스 옵션을 인덱스 벡터(포트)
, 시작 인덱스(포트)
또는 시작 인덱스 및 끝 인덱스(포트)
로 설정하십시오.
데이터형: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
출력
Port_1 — 출력 신호
스칼라 | 벡터 | 행렬 | 다차원
입력 신호에서 선택되거나 재정렬된 요소로부터 생성된 출력 신호입니다.
데이터형: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
파라미터
입력 차원 수 — 입력 신호의 차원 수
1
(디폴트 값) | 정수
입력 신호의 차원 수를 지정합니다.
프로그래밍 방식의 사용법
블록 파라미터: NumberOfDimensions
|
유형: 문자형 벡터 |
값: integer
|
디폴트 값: '1'
|
인덱스 모드 — 인덱스 모드
1부터 시작
(디폴트 값) | 0부터 시작
인덱싱 모드를 지정합니다. 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)'
|
인덱스 — 요소의 인덱스
1
(디폴트 값) | 정수
인덱스 옵션이 인덱스 벡터(대화 상자)
이면 관심 있는 각 요소의 인덱스를 입력합니다.
인덱스 옵션이 시작 인덱스(대화 상자)
이면 선택할 요소 범위의 시작 인덱스를 입력합니다.
프로그래밍 방식의 사용법
블록 파라미터: IndexParamArray
|
유형: 문자형 벡터 |
값: 셀형 배열 |
디폴트 값: '{ }'
|
출력 크기 — 블록 출력 신호의 너비
1
(디폴트 값) | 정수
블록 출력 신호의 너비를 지정합니다.
프로그래밍 방식의 사용법
블록 파라미터: OutputSizeArray
|
유형: 문자형 벡터 |
값: 셀형 배열 |
디폴트 값: '{ }'
|
입력 포트 크기 — 입력 신호의 너비
3
(디폴트 값) | 정수
1차원 신호의 블록 입력 신호 너비를 지정합니다. 구동 블록에서 상속하려면 -1
을 입력하십시오.
프로그래밍 방식의 사용법
블록 파라미터: InputPortWidth
|
유형: 문자형 벡터 |
값: integer
|
디폴트 값: '3'
|
샘플 시간(상속된 경우 -1) — 샘플 간의 간격
-1
(디폴트 값) | 스칼라 | 벡터
샘플 간의 시간 간격을 지정합니다. 샘플 시간을 상속하려면 이 파라미터를 -1
로 설정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.
종속성
이 파라미터는 -1
이외의 값으로 설정한 경우에만 표시됩니다. 자세한 내용은 Blocks for Which Sample Time Is Not Recommended 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: SampleTime |
유형: string형 스칼라 또는 문자형 벡터 |
디폴트 값: "-1" |
가속화된 시뮬레이션에서 범위를 벗어난 인덱스 검사 — 액셀러레이터 및 고속 액셀러레이터 시뮬레이션 모드에서 범위 밖 인덱스 값을 검사하는 옵션
off
(디폴트 값) | on
Simulink®가 액셀러레이터 또는 고속 액셀러레이터 모드에서 시뮬레이션하는 동안 입력 신호의 관련 차원에 대한 유효 인덱스 범위를 벗어나는 인덱스 값이 있는지 검사하도록 하려면 이 체크박스를 선택합니다. 인덱스가 범위 밖에 있다면 Simulink는 시뮬레이션을 중단하고 오류 메시지를 표시합니다.
참고
이 체크박스를 선택하지 않으면 범위 밖 인덱스 값이 액셀러레이터 또는 고속 액셀러레이터 모드의 시뮬레이션 도중에 정의되지 않은 동작으로 이어질 수 있습니다.
Simulink는 일반 모드의 시뮬레이션 도중에는 이 체크박스 선택 여부와 무관하게 이 검사를 수행합니다.
프로그래밍 방식의 사용법
파라미터: RuntimeRangeChecks
|
유형: 문자형 벡터 |
값: 'Off' | 'On' |
디폴트 값: 'Off'
|
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.
HDL Coder™는 HDL 구현과 합성된 논리에 영향을 주는 추가 구성 옵션을 제공합니다.
이 블록에는 하나의 디폴트 HDL 아키텍처가 있습니다.
일반 | |
---|---|
ConstrainedOutputPipeline | 기존 지연을 설계 내부로 이동하여 출력에 배치하는 레지스터 개수입니다. 분산된 파이프라이닝은 이러한 레지스터를 다시 분산하지 않습니다. 디폴트 값은 |
InputPipeline | 생성된 코드에 삽입할 입력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
OutputPipeline | 생성된 코드에 삽입할 출력 파이프라인 단계의 개수입니다. 분산 파이프라이닝과 제약이 있는 출력 파이프라이닝은 이러한 레지스터를 이동할 수 있습니다. 디폴트 값은 |
네이티브 부동소수점 | |
---|---|
LatencyStrategy | 부동소수점 연산자인 경우 설계 내 블록을 |
이 블록은 복소 신호를 위한 코드 생성을 지원합니다.
PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.
고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.
버전 내역
R2006a 이전에 개발됨R2023a: 인덱스 신호가 사용자 지정 너비를 갖는 정수를 지원함
R2023a부터는 Selector 블록의 인덱스 신호 값을 지정하는 데 사용하는 정수의 너비를 사용자 지정할 수 있습니다.
R2023a: 인덱스 옵션으로 인덱스 벡터(대화 상자)
및 시작 인덱스(대화 상자)
에 대한 가변 크기 신호 지원
R2023a부터 1차원 가변 크기 입력 신호를 받도록 구성된 Selector 블록이 인덱스 벡터(대화 상자)
및 시작 인덱스(대화 상자)
를 인덱스 옵션으로 지원합니다.
이러한 기능 향상 덕분에 1차원 가변 크기 입력 신호를 받도록 Selector 블록을 구성할 때 사용 가능한 모든 인덱스 옵션 설정 중에서 선택할 수 있습니다.
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)