fi
고정소수점 숫자형 객체 생성
설명
고정소수점 데이터형을 숫자 또는 변수에 할당하려면 fi
생성자를 사용하여 fi
객체를 만드십시오. 이 생성자에서 또는 numerictype
객체와 fimath
객체를 사용하여 숫자형 특성과 수학 규칙을 지정할 수 있습니다.
생성
구문
설명
는 값을 갖지 않고 16비트 워드 길이와 15비트 소수부 길이를 갖는 부호 있는 a
= fifi
객체를 반환합니다.
는 값 a
= fi(v
,s
,w
,slopeadjustmentfactor
,fixedexponent
,bias
)v
, 부호의 유무 s
, slopeadjustmentfactor
, fixedexponent
, bias
를 갖는 fi
객체를 반환합니다.
는 값 a
= fi(v
,T
)v
와 numerictype
T
를 갖는 fi
객체를 반환합니다.
는 하나 이상의 이름-값 쌍 인수로 지정된 속성값을 갖는 a
= fi(___,Name,Value
)fi
객체를 반환합니다.
입력 인수
v
— 값
스칼라 | 벡터 | 행렬 | 다차원 배열
fi
객체의 값으로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.
반환된 fi
객체의 값은 fi
생성자에 지정된 데이터형으로 양자화된 입력 v
의 값입니다. 입력값 v
가 double형이 아니고 워드 길이나 소수부 길이를 지정하지 않았다면, 반환되는 fi
객체는 입력값의 numerictype을 유지합니다. 예제는 double형이 아닌 값으로부터 fi 객체 만들기 항목을 참조하십시오.
fi
객체의 numerictype을 완전히 지정한 경우에만 유한하지 않은 값인 -Inf
, Inf
, NaN
을 값으로 지정할 수 있습니다. fi
가 고정소수점 numerictype으로 지정된 경우 다음이 적용됩니다.
NaN
은0
에 매핑됩니다.fi
객체의'OverflowAction'
속성이'Wrap'
으로 설정되면-Inf
및Inf
는0
에 매핑됩니다.fi
객체의'OverflowAction'
속성이'Saturate'
로 설정되면,Inf
는 표현 가능한 가장 큰 값에 매핑되고-Inf
는 표현 가능한 가장 작은 값에 매핑됩니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| fi
s
— 부호의 유무
true
또는 1
(디폴트 값) | false
또는 0
fi
객체의 부호의 유무로, 숫자형 또는 논리값 1
(true
) 또는 0
(false
)으로 지정됩니다. 값이 1
(true
)이면 부호 있는 데이터형을 나타냅니다. 값이 0
(false
)이면 부호 없는 데이터형을 나타냅니다.
데이터형: logical
w
— 워드 길이(비트 수)
16 (디폴트 값) | 양의 정수 스칼라
fi
객체의 워드 길이(비트 수)로, 양의 정수 스칼라로 지정됩니다.
fi
객체는 65535비트의 워드 길이 제한을 갖습니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
f
— 소수부 길이(비트 수)
15 (디폴트 값) | 정수 스칼라
fi
객체의 저장된 정수 값에 대한 소수부 길이(비트 수)로, 정수 스칼라로 지정됩니다.
소수부 길이를 지정하지 않으면 fi
객체는 자동으로 최적 정밀도의 소수부 길이를 사용하며, 지정된 값, 워드 길이, 부호 유무에 대한 오버플로를 방지합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
slope
— 기울기
양의 스칼라
fi
객체 스케일링의 기울기로, 양의 스칼라로 지정됩니다.
다음 수식은 기울기 편향 스케일링된 숫자의 실제 값을 나타냅니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
bias
— 편향
스칼라
fi
객체 스케일링의 편향으로, 스칼라로 지정됩니다.
다음 수식은 기울기 편향 스케일링된 숫자의 실제 값을 나타냅니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
slopeadjustmentfactor
— 기울기 조정 인자
1
보다 크거나 같고 2
보다 작은 스칼라
fi
객체의 기울기 조정 인자로, 1
보다 크거나 같고 2
보다 작은 스칼라로 지정됩니다.
다음 수식은 기울기, 고정 지수, 기울기 조정 인자 간의 관계를 보여줍니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
fixedexponent
— 고정 지수
스칼라
fi
객체의 고정 지수로, 스칼라로 지정됩니다.
다음 수식은 기울기, 고정 지수, 기울기 조정 인자 간의 관계를 보여줍니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
T
— 숫자형 속성
numerictype
객체
fi
객체의 숫자형 속성으로, numerictype
객체로 지정됩니다.
F
— 고정소수점 수학 속성
fimath
객체
fi
객체의 고정소수점 수학 속성으로, fimath
객체로 지정됩니다.
속성
fi
객체는 다음 세 가지 유형의 속성을 갖습니다.
fi
객체를 만들 때 이러한 속성을 설정할 수 있습니다. fi
객체의 데이터에 액세스할 때 이 데이터 속성을 사용하십시오. fimath
속성과 numerictype
속성은 추이적 관계(transitivity)에 따라 fi
객체의 속성이기도 합니다. fimath
속성은 fi
객체에 대해 수행하는 고정소수점 산술 연산의 규칙을 결정합니다. numerictype
객체에는 고정소수점 객체의 모든 데이터형 및 스케일링 특성이 포함되어 있습니다.
예제
fi
객체 만들기
디폴트 생성자를 사용하여 fi
객체를 만듭니다. 이 생성자는 값이 없고 16비트 워드 길이 및 15비트 소수부 길이를 갖는 fi
객체를 반환합니다.
a = fi
a = [] DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15
값이 pi
이고 16비트 워드 길이 및 최적 정밀도의 소수부 길이를 갖는 부호 있는 fi
객체를 만듭니다. 오버플로 없이 가능한 최적 정밀도를 얻을 수 있도록 소수부 길이가 자동으로 설정됩니다.
a = fi(pi)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
값이 pi
인 부호 없는 fi
객체를 만듭니다. fi
객체의 값과 부호의 유무만 지정하면, 기본적으로 워드 길이 16비트, 최적 정밀도의 소수부 길이로 설정됩니다.
a = fi(pi,0)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 16 FractionLength: 14
워드 길이가 8비트이고 최적 정밀도의 소수부 길이를 갖는 부호 있는 fi
객체를 만듭니다. 이 예제에서는, 부호 있는 데이터형일 때 정수 부분을 표현하려면 3비트가 필요하므로 a
의 소수부 길이는 5
입니다.
a = fi(pi,1,8)
a = 3.1562 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 5
fi
객체에 부호가 없으면 정수 부분을 표현하는 데 2비트만 필요하므로 소수부는 6비트가 됩니다.
b = fi(pi,0,8)
b = 3.1406 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 8 FractionLength: 6
값이 pi
이고 워드 길이가 8비트이고 소수부 길이가 3비트인 부호 있는 fi
객체를 생성합니다.
a = fi(pi,1,8,3)
a = 3.1250 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 3
16비트 워드 길이 및 12비트 소수부 길이를 갖는 fi
객체로 구성된 배열을 만듭니다.
a = fi((magic(3)/10),1,16,12)
a = 0.8000 0.1001 0.6001 0.3000 0.5000 0.7000 0.3999 0.8999 0.2000 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 12
기울기 및 편향 스케일링을 사용하는 fi
객체 만들기
기울기 및 편향 스케일링된 숫자의 실제 값은 다음과 같이 표현됩니다.
.
기울기 및 편향 스케일링을 사용하는 fi
객체를 만들려면 생성자에서 워드 길이 다음에 slope
및 bias
인수를 포함시킵니다. 예를 들어 기울기가 3
이고 편향이 2
인 fi
객체를 만들어 보겠습니다.
a = fi(pi,1,16,3,2)
a = 2 DataTypeMode: Fixed-point: slope and bias scaling Signedness: Signed WordLength: 16 Slope: 3 Bias: 2
fi
객체 a
의 DataTypeMode
속성은 Fixed-point: slope and bias scaling
입니다.
또는 기울기 조정 인자와 고정 지수를 지정할 수 있습니다. 여기서 다음을 충족합니다.
.
예를 들어 기울기 조정 인자가 1.5
이고 고정 지수가 1
이고 편향이 2
인 fi
객체를 만듭니다.
a = fi(pi,1,16,1.5,1,2)
a = 2 DataTypeMode: Fixed-point: slope and bias scaling Signedness: Signed WordLength: 16 Slope: 3 Bias: 2
numerictype
객체로부터 fi
객체 만들기
numerictype
객체에는 fi
객체의 모든 데이터형 정보가 포함되어 있습니다. numerictype
속성은 fi
객체의 속성이기도 합니다.
fi
생성자에 numerictype
객체를 지정하여, 기존 numerictype
객체의 모든 속성을 사용하는 fi
객체를 만들 수 있습니다.
T = numerictype(0,24,16)
T = DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 24 FractionLength: 16
a = fi(pi,T)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 24 FractionLength: 16
fimath
가 연결된 fi
객체 만들기
fi
객체의 산술 특성은 fi
객체에 연결된 fimath
객체에 의해 정의됩니다.
fimath
객체를 만들고 OverflowAction
, RoundingMethod
, ProductMode
속성을 지정합니다.
F = fimath('OverflowAction','Wrap',... 'RoundingMethod','Floor',... 'ProductMode','KeepMSB')
F = RoundingMethod: Floor OverflowAction: Wrap ProductMode: KeepMSB ProductWordLength: 32 SumMode: FullPrecision
fi
객체를 만들고 생성자에서 fimath
객체 F
를 지정합니다.
a = fi(pi,F)
a = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Floor OverflowAction: Wrap ProductMode: KeepMSB ProductWordLength: 32 SumMode: FullPrecision
removefimath
함수를 사용하여, 연결된 fimath
객체를 제거하고 수학 설정을 디폴트 값으로 되돌립니다.
a = removefimath(a)
a = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
double형이 아닌 값으로부터 fi
객체 만들기
fi
객체의 입력 인수 v
가 double형이 아니고 워드 길이나 소수부 길이 속성을 지정하지 않았다면, 반환되는 fi
객체는 입력 인수의 숫자형을 유지합니다.
내장 정수로부터 fi
객체 만들기
입력값이 내장 정수이면 고정소수점 특성은 정수형의 특성과 일치합니다.
v1 = uint32(5); a1 = fi(v1)
a1 = 5 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 32 FractionLength: 0
v2 = int8(5); a2 = fi(v2)
a2 = 5 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 0
fi
객체로부터 fi
객체 만들기
입력값이 fi
객체이면 출력값은 입력 fi
객체와 동일한 워드 길이, 소수부 길이, 부호의 유무를 사용합니다.
v = fi(pi,1,24,12); a = fi(v)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 24 FractionLength: 12
논리형으로부터 fi
객체 만들기
입력값이 논리형이면 출력 fi
객체의 DataTypeMode
속성은 Boolean
입니다.
v = true; a = fi(v)
a = 1 DataTypeMode: Boolean
single형으로부터 fi
객체 만들기
입력값이 single형이면 출력 객체의 DataTypeMode 속성은
Single
입니다.
v = single(pi); a = fi(v)
a = 3.1416 DataTypeMode: Single
fi
객체 생성자에 반올림 모드와 오버플로 모드 지정하기
fi
객체를 생성할 때 반올림 모드와 오버플로 모드 같은 fimath
속성을 설정할 수 있습니다.
a = fi(pi,'RoundingMethod','Floor',... 'OverflowAction','Wrap')
a = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13 RoundingMethod: Floor OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
RoundingMethod
및 OverflowAction
속성은 fimath
객체의 속성입니다. fi
생성자에 이러한 속성을 지정하면 로컬 fimath
객체가 fi
객체와 연결됩니다.
removefimath
함수를 사용하여 로컬 fimath
를 제거하고 수학 속성을 다시 디폴트 값으로 설정합니다.
a = removefimath(a)
a = 3.1415 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
fi
객체에 대한 데이터형 재정의 설정하기
이 예제에서는 fipref
객체의 DataTypeOverride
설정을 사용하여 fi
객체를 double형, single형 또는 스케일링된 double형으로 재정의하는 방법을 보여줍니다. fipref
객체는 모든 fi
객체에 대한 표시 특성과 기록 특성을 정의합니다.
나중에 복원할 수 있도록 현재 fipref
설정을 저장합니다.
fp = fipref; initialDTO = fp.DataTypeOverride;
디폴트 설정과 원래 fipref
설정을 사용하는 fi
객체를 만듭니다.
a = fi(pi)
a = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
fipref
객체를 사용하여 데이터형 재정의를 double형으로 설정합니다.
fipref('DataTypeOVerride','TrueDoubles')
ans = NumberDisplay: 'RealWorldValue' NumericTypeDisplay: 'full' FimathDisplay: 'full' LoggingMode: 'Off' DataTypeOverride: 'TrueDoubles' DataTypeOverrideAppliesTo: 'AllNumericTypes'
DataTypeOverride
속성을 지정하지 않고 새 fi
객체를 만듭니다. 그러면 이 객체는 fipref
를 사용하여 지정된 데이터형 재정의 설정을 사용합니다.
a = fi(pi)
a = 3.1416 DataTypeMode: Double
또 다른 fi
객체를 만들고 이 객체의 DataTypeOverride
설정을 off
로 지정합니다. 그러면 이 객체는 fipref
객체의 데이터형 재정의 설정을 무시합니다.
b = fi(pi,'DataTypeOverride','Off')
b = 3.1416 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
예제 앞부분에서 저장했던 fipref
설정을 복원합니다.
fp.DataTypeOverride = initialDTO;
-Inf
, Inf
, NaN
에 대한 fi
동작
숫자형이 아닌 값 -Inf
, Inf
, NaN
을 fi
에서 고정소수점 값으로 사용하려면 고정소수점 객체의 숫자형을 완전히 지정해야 합니다. 이러한 값에는 자동 최적 정밀도의 스케일링이 지원되지 않습니다.
오버플로 시 포화
fi
객체의 숫자형이 오버플로 시 포화로 지정되면, Inf
는 지정된 숫자형의 표현 가능한 가장 큰 값에 매핑되고 -Inf
는 표현 가능한 가장 작은 값에 매핑됩니다. NaN
은 0에 매핑됩니다.
x = [-inf nan inf]; a = fi(x,1,8,0,'OverflowAction','Saturate') b = fi(x,0,8,0,'OverflowAction','Saturate')
a = -128 0 127 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 0 RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision b = 0 0 255 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 8 FractionLength: 0 RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
오버플로 시 래핑
fi
객체의 숫자형이 오버플로 시 래핑으로 지정되면, -Inf
, Inf
, NaN
은 0에 매핑됩니다.
x = [-inf nan inf]; a = fi(x,1,8,0,'OverflowAction','Wrap') b = fi(x,0,8,0,'OverflowAction','Wrap')
a = 0 0 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 8 FractionLength: 0 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision b = 0 0 0 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 8 FractionLength: 0 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
팁
fipref
객체를 사용하여fi
객체의 표시, 기록, 데이터형 재정의 기본 설정을 제어할 수 있습니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
입력 인수가 없는 디폴트 생성자 구문은 지원되지 않습니다.
numerictype
이 완전히 지정되지 않은 경우fi
에 대한 입력값은 상수,fi
, single형 또는 내장 정수 값이어야 합니다. 입력값이 내장 double형 값인 경우에는 상수여야 합니다. 이러한 제한 사항이 있기 때문에fi
는 입력값의 알려진 데이터형을 기반으로 소수부 길이를 자동 스케일링할 수 있습니다.코드를 생성하려면 데이터형과 관련된 모든 속성은 상수여야 합니다.
고정소수점이 아닌 Simulink® 입력값인 경우
numerictype
객체 정보가 제공되어야 합니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.
버전 내역
R2006a 이전에 개발됨R2021a: fi
, fimath
, numerictype
객체의 부정확한 속성 이름은 지원되지 않음
이전 릴리스에서는 fi
, fimath
, numerictype
객체의 부정확한 속성 이름을 사용할 경우 경고가 발생합니다. R2021a에서는 부정확한 속성 이름에 대한 지원이 제거되었습니다. 대신 정확한 속성 이름을 사용하십시오.
R2020b: -Inf
, Inf
, NaN
에 대한 fi
의 디폴트 동작이 변경됨
이전 릴리스에서는 유한하지 않은 입력값 -Inf
, Inf
또는 NaN
이 전달되는 경우 fi
가 오류를 반환합니다. 이제 fi
는 MATLAB®과 Simulink가 정수 데이터형에 대해 -Inf
, Inf
, NaN
을 처리하는 것과 동일한 방식으로 이러한 입력값을 처리합니다.
fi
가 고정소수점 숫자형으로 지정된 경우 다음이 적용됩니다.
NaN
은0
에 매핑됩니다.fi
객체의'OverflowAction'
속성이'Wrap'
으로 설정되면-Inf
및Inf
는0
에 매핑됩니다.fi
객체의'OverflowAction'
속성이'Saturate'
로 설정되면,Inf
는 표현 가능한 가장 큰 값에 매핑되고-Inf
는 표현 가능한 가장 작은 값에 매핑됩니다.
이 동작의 예제는 -Inf, Inf, NaN에 대한 fi 동작 항목을 참조하십시오.
참고
-Inf
, Inf
또는 NaN
의 입력값에는 최적 정밀도의 스케일링이 지원되지 않습니다.
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)