주요 콘텐츠

Index Vector

R2026b

첫 번째 입력의 값에 따라 서로 다른 입력 간 출력 전환

  • Index Vector block

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

Index Vector 블록의 대체 구성:
Multiport Switch

설명

Index Vector 블록은 Multiport Switch 블록의 특수한 구성으로, 이 구성에서는 하나의 데이터 입력을 지정할 수 있으며 제어 입력이 0부터 시작합니다. 블록 출력은 입력 벡터에서 인덱스가 제어 입력과 일치하는 요소입니다. 예를 들어 입력 벡터가 [18 15 17 10]이고 제어 입력이 3이면, 인덱스 3(0부터 시작)과 일치하는 요소는 10이므로 이 값이 출력값이 됩니다.

Index Vector 블록과 Multiport Switch 블록은 동일한 블록의 대체 구성입니다.

  • Index Vector — 첫 번째 입력의 값에 따라 서로 다른 입력 간 출력 전환.

  • Multiport Switch — 제어 신호를 기반으로 출력 신호 선택.

Multiport Switch 블록이 Index Vector 블록처럼 동작하도록 구성하려면 데이터 포트 개수를 1로, 데이터 포트 순서를 0부터 시작하여 연속으로 설정하십시오.

예제

모두 확장

이 예제는 Index Vector 블록이 0부터 시작하는 인덱싱과 1부터 시작하는 인덱싱에서 어떻게 동작하는지 보여줍니다.

Index Vector 블록은 Simulink Signal Routing 라이브러리에 있습니다. 이 블록은 Multiport Switch 블록의 특수한 구성입니다. Multiport Switch 블록을 Index Vector 블록으로 구성하려면 데이터 포트 개수를 1로, 데이터 포트 순서를 Zero-based contiguous로 설정하십시오.

포트

입력

모두 확장

제어 신호로, 스칼라로 지정됩니다. 제어 입력이 정수 값이 아니면 블록은 값을 0 방향으로 반올림하여 정수가 되도록 합니다.

열거형의 제어 신호에 대한 자세한 내용은 Multiport Switch 블록 도움말 페이지의 열거형 제어 포트에 대한 파라미터 설정 지침 항목을 참조하십시오.

제한 사항

  • 제어 신호가 숫자형이면 제어 신호는 복소수일 수 없습니다.

  • 제어 신호가 열거형 신호이면 블록은 기본 정수 값을 사용하여 데이터 포트를 선택합니다.

  • 기본 정수 값이 데이터 입력에 대응하지 않으면 오류가 발생합니다.

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

첫 번째 데이터 입력으로, 스칼라 또는 벡터로 지정됩니다. 데이터 포트 순서를 0부터 시작하여 연속으로 설정하면 포트에 0으로 레이블이 지정되며, 데이터 포트 순서를 1부터 시작하여 연속으로 설정하면 1로 레이블이 지정됩니다.

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

출력

모두 확장

블록은 제어 신호 값에 따라 입력 데이터 벡터에서 선택된 값을 출력합니다. 출력은 스칼라입니다.

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

파라미터

모두 확장

기본

데이터 입력 포트의 순서 지정 유형을 지정합니다.

  • 0부터 시작하여 연속 — 블록이 연속적인 데이터 포트의 순서를 지정할 때 0부터 시작하는 인덱싱을 사용합니다. 이는 Index Vector 블록의 디폴트 값입니다.

  • 1부터 시작하여 연속 — 블록이 연속적인 데이터 포트의 순서를 지정할 때 1부터 시작하는 인덱싱을 사용합니다. 이는 Multiport Switch 블록의 디폴트 값입니다.

  • 인덱스 지정 — 블록이 데이터 포트의 순서를 지정할 때 비연속 인덱싱을 사용합니다. 이 값은 입력 데이터 포트가 2개 이상인 구성에만 지원됩니다.

팁

  • 제어 포트가 열거형이면 인덱스 지정을 선택하십시오.

  • 0부터 시작하여 연속 또는 1부터 시작하여 연속을 선택할 경우 제어 포트가 열거형이 아닌지 확인하십시오. 이 구성은 더 이상 사용되지 않으며 오류를 생성합니다. 모델에서 업그레이드 어드바이저를 실행하여, 이 구성의 각 Multiport Switch 블록을 데이터 포트 인덱스를 명시적으로 지정하는 블록으로 바꿀 수 있습니다. 모델 업그레이드 항목을 참조하십시오.

  • 시뮬레이션 또는 코드 생성 시 블록에 사용되지 않는 데이터 포트가 포함되어 있는 상황은 피하십시오. 제어 포트가 고정소수점 데이터형이거나 내장 데이터형인 경우 모든 데이터 포트 인덱스가 해당 데이터형으로 표현 가능한지 확인하십시오. 그렇지 않으면 다음 블록 동작이 발생합니다.

    사용되지 않는 데이터 포트가 블록에 포함되어 있고 데이터 포트 순서가 다음과 같을 경우블록에서 생성되는 결과
    0부터 시작하여 연속 또는 1부터 시작하여 연속 경고
    인덱스 지정 오류

종속성

0부터 시작하여 연속 또는 1부터 시작하여 연속을 선택하면 데이터 포트 개수 파라미터가 활성화됩니다.

인덱스 지정을 선택하면 데이터 포트 인덱스 파라미터가 활성화됩니다.

프로그래밍 방식의 사용법

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

블록에 대한 데이터 입력 포트 개수를 지정합니다.

종속성

이 파라미터를 활성화하려면 데이터 포트 순서를 0부터 시작하여 연속 또는 1부터 시작하여 연속으로 설정하십시오.

프로그래밍 방식의 사용법

블록 파라미터: Inputs
유형: 문자형 벡터
값: 1과 65536 사이의 정수
디폴트 값: '1'

신호 특성

모든 데이터 입력 포트의 데이터형을 동일하게 하려면 이 체크박스를 선택하십시오. 이 체크박스의 선택을 해제하면 블록은 데이터 포트 입력이 서로 다른 데이터형을 가질 수 있도록 허용합니다.

프로그래밍 방식의 사용법

블록 파라미터: InputSameDT
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

소프트웨어에서 검사하는 출력 범위의 하한 값입니다.

이 최솟값을 사용하여 다음 작업이 수행됩니다.

팁

출력 최솟값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: OutMin
값: '[]' (디폴트 값) | scalar in quotes

소프트웨어에서 검사하는 출력 범위의 상한 값입니다.

이 최댓값을 사용하여 다음 작업이 수행됩니다.

팁

출력 최댓값은 실제 출력 신호를 포화시키거나 자르지 않습니다. 대신 Saturation 블록을 사용하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: OutMax
값: '[]' (디폴트 값) | scalar in quotes

출력의 데이터형을 선택합니다. 유형은 상속되거나 직접 지정되거나 Simulink.NumericType과 같은 데이터형 객체로 표현될 수 있습니다.

상속된 옵션을 선택하면 블록은 다음과 같이 동작합니다.

  • 상속: MSB 유지 — 연산 결과의 전체 범위를 유지하는 데이터형을 선택합니다. 하지만 해당 유형(full type)이 임베디드 타깃 하드웨어에 적합하지 않은 경우 범위를 줄입니다.

    이 규칙으로 인해 오버플로가 생성되는 일은 없습니다.

  • 상속: LSB 유지 — 소프트웨어는 연산 정밀도를 유지하는 데이터형을 선택합니다. 하지만 전체 유형이 임베디드 타깃 하드웨어에 적합하지 않은 경우 범위를 줄입니다. 이 규칙으로 인해 오버플로가 생성될 수 있습니다.

    임베디드 타깃 설정을 변경할 경우 그러한 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.

    • 명시적으로 출력 데이터형을 지정합니다.

    • 상속: 첫 번째 입력과 동일이라는 간단한 옵션을 사용합니다.

    • 명시적으로 fixdt(1,32,16) 같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은 fxptdlg (Fixed-Point Designer) 항목을 참조하십시오.

    • 고유한 상속 규칙을 지정하려면 상속: 역전파를 통해 상속을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.

  • 상속: 내부 규칙을 통해 상속 — Simulink®가 임베디드 타깃 하드웨어의 속성을 고려하면서도 수치적 정확도와 성능, 생성된 코드 크기 간에 균형을 이루도록 데이터형을 선택합니다. 임베디드 타깃 설정을 변경할 경우 내부 규칙을 통해 선택된 데이터형이 변경될 수 있습니다. 항상 코드 효율성과 수치적 정확도를 동시에 최적화할 수 있는 것은 아닙니다. 내부 규칙이 수치적 정확도 또는 성능의 특정 요건에 부합되지 않으면 다음 옵션 중 하나를 사용하십시오.

    • 명시적으로 출력 데이터형을 지정합니다.

    • 명시적으로 fixdt(1,32,16) 같은 디폴트 데이터형을 지정한 다음, 모델의 데이터형을 제안하는 고정소수점 툴을 사용합니다. 자세한 내용은 fxptdlg (Fixed-Point Designer) 항목을 참조하십시오.

    • 고유한 상속 규칙을 지정하려면 상속: 역전파를 통해 상속을 사용한 후 Data Type Propagation 블록을 사용합니다. 이 블록의 사용 방법에 대한 예는 Signal Attributes 라이브러리의 Data Type Propagation Examples 블록에서 볼 수 있습니다.

  • 상속: 역전파를 통해 상속 — 구동 블록의 데이터형을 사용합니다.

  • 상속: 첫 번째 데이터 입력과 동일 — 첫 번째 데이터 입력 포트의 데이터형을 사용합니다.

프로그래밍 방식의 사용법

블록 파라미터: OutDataTypeStr
유형: 문자형 벡터
값: 'Inherit: Inherit via internal rule | 'Inherit: Inherit via back propagation' | 'Inherit: Same as first input' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'string' | Simulink.ImageType(480,640,3) | '<data type expression>'
디폴트 값: 'Inherit: Inherit via internal rule'

고정소수점 툴과 고정소수점 어드바이저에 의해 변경되지 않도록 이 블록의 출력 데이터형 설정을 잠그려면 선택합니다. 자세한 내용은 Use Lock Output Data Type Setting (Fixed-Point Designer) 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: LockScale
유형: 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

다음 반올림 모드 중 하나를 선택합니다.

올림(Ceiling)

양수와 음수를 모두 양의 무한대 방향으로 올림합니다. MATLAB® ceil 함수와 동일합니다.

수렴(Convergent)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 가장 가까운 짝수로 반올림합니다. Fixed-Point Designer™ convergent 함수와 동일합니다.

내림(Floor)

양수와 음수를 모두 음의 무한대 방향으로 내림합니다. MATLAB floor 함수와 동일합니다.

최근접(Nearest)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 양의 무한대 방향으로 올림합니다. Fixed-Point Designer nearest 함수와 동일합니다.

반올림(Round)

숫자를 표현 가능한 가장 가까운 값으로 반올림합니다. 반올림 경계에 놓인 숫자인 경우 양수는 양의 무한대 방향으로 올림하고 음수는 음의 무한대 방향으로 내림합니다. Fixed-Point Designer round 함수와 동일합니다.

최대단순(Simplest)

가능한 한 가장 효율적인 반올림 코드를 생성하기 위해 내림과 0 방향으로의 올림/내림 중에서 자동으로 선택합니다.

0 방향(Zero)

숫자를 0 방향으로 반올림합니다. MATLAB fix 함수와 동일합니다.

프로그래밍 방식의 사용법

블록 파라미터: RndMeth
유형: 문자형 벡터
값: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
디폴트 값: 'Floor'

참고 항목

자세한 내용은 반올림 모드 (Fixed-Point Designer) 항목을 참조하십시오.

오버플로 시 포화시킬지 아니면 래핑할지를 지정합니다.

  • on — 오버플로 시 데이터형이 표현할 수 있는 최솟값 또는 최댓값으로 포화됩니다.

  • off — 오버플로 시 데이터형이 표현할 수 있는 적절한 값으로 래핑됩니다.

예를 들어, 부호 있는 8비트 정수 int8이 표현할 수 있는 최댓값은 127입니다. 블록 연산 결과가 이 최댓값보다 크면 8비트 정수 오버플로가 발생합니다.

  • 이 파라미터를 선택하면 블록 출력이 127에서 포화됩니다. 마찬가지로 블록 출력은 최소 출력값 -128에서 포화됩니다.

  • 이 파라미터를 선택 해제하면 오버플로를 일으키는 값이 int8형으로 해석되어 의도치 않은 결과가 발생할 수 있습니다. 예를 들어, int8형으로 표현된 130(2진수 1000 0010)의 블록 결과는 -126입니다.

팁

  • 모델에 오버플로가 발생할 가능성이 있고 생성된 코드에서 포화 보호를 명시적으로 지정하려는 경우 이 파라미터를 선택해 보십시오.

  • 생성된 코드의 효율성을 최적화하려면 이 파라미터를 선택 해제하는 것이 좋습니다. 이 파라미터를 선택 해제하면 블록이 범위를 벗어난 신호를 처리하는 방법을 과도하게 지정하는 일이 방지됩니다. 자세한 내용은 Troubleshoot Signal Range Errors 항목을 참조하십시오.

  • 이 파라미터를 선택하는 경우 출력이나 결과뿐만 아니라 블록의 모든 내부 연산에 포화가 적용됩니다.

  • 일반적으로 코드 생성 프로세스는 오버플로가 발생할 가능성이 없는 경우를 감지할 수 있습니다. 이 경우, 코드 생성기는 포화 코드를 생성하지 않습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

파라미터: SaturateOnIntegerOverflow
값: 'off' (디폴트 값) | 'on'

서로 다른 크기의 입력 신호를 허용하려면 이 체크박스를 선택하십시오.

  • On — 서로 다른 크기의 입력 신호를 허용하고 입력 신호 크기를 출력 신호에 전파합니다. 이 모드에서 블록은 가변 크기 출력 신호를 생성합니다.

  • Off — 모든 비 스칼라 데이터 입력 신호의 크기가 동일해야 합니다.

프로그래밍 방식의 사용법

파라미터: AllowDiffInputSizes
유형: 문자형 벡터
값: 'on' | 'off'
디폴트 값: 'off'

블록 특성

데이터형

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

직접 피드스루

예

다차원 신호

예

가변 크기 신호

예

영점교차 검출

아니요

대체 구성

모두 확장

Multiport Switch 블록은 이 블록에 대한 여러 입력 중 출력에 전달할 입력을 결정합니다. 이 블록은 첫 번째 입력의 값을 기반으로 이 결정을 내립니다. 첫 번째 입력은 제어 입력이고, 나머지 입력은 데이터 입력입니다. 제어 입력의 값에 따라 출력에 전달되는 데이터 입력이 결정됩니다.

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

확장 기능

모두 확장

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

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

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

버전 내역

R2006a 이전에 개발됨

모두 확장