divide
두 fi
객체 나누기
설명
예제
두 fi 객체 나누기
이 예제에서는 divide
함수의 정밀도를 제어하는 방법을 보여줍니다.
워드 길이가 80비트이고 2^-83 스케일링(해당 표현의 선행 1을 최상위 비트에 놓음)을 사용하는 부호 없는 fi
객체를 만듭니다. 객체를 값 0.1로 초기화하고, 이진수 표현을 검토합니다.
P = fipref('NumberDisplay', 'bin',... 'NumericTypeDisplay', 'short',... 'FimathDisplay', 'none'); a = fi(0.1, 0, 80, 83)
a = 11001100110011001100110011001100110011001100110011010000000000000000000000000000 numerictype(0,80,83)
무한 반복 표현이 52비트 다음에 잘린 것을 알 수 있습니다. 이는 IEEE® 표준 배정밀도 부동소수점 숫자의 가수가 52비트이기 때문입니다.
위의 방식을, 몫을 앞과 동일한 숫자형으로 설정하여 고정소수점 연산방식으로 1/10을 계산하는 방식과 대조해 봅니다.
T = numerictype('Signed', false,... 'WordLength', 80,... 'FractionLength', 83); a = fi(1); b = fi(10); c = divide(T, a, b); c.bin
ans = '11001100110011001100110011001100110011001100110011001100110011001100110011001101'
divide
함수를 사용한 경우에는 몫이 a
와 b
의 정밀도와 관계없이 완전한 80비트로 계산됨을 알 수 있습니다. 따라서 fi
객체 c
가 IEEE® 표준 배정밀도 부동소수점 숫자보다 더 정확하게 1/10을 표현합니다.
입력 인수
T
— 출력값의 숫자형
numerictype
객체
출력값의 숫자형으로, numerictype
객체로 지정됩니다.
a
— 분자
스칼라 | 벡터 | 행렬 | 다차원 배열
분자로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.
입력값 a
와 b
는 동일한 크기이거나 호환되는 크기를 가져야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| fi
복소수 지원 여부: 예
b
— 분모
스칼라 | 벡터 | 행렬 | 다차원 배열
분모로, 실수형 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.
입력값 a
와 b
는 동일한 크기이거나 호환되는 크기를 가져야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| fi
복소수 지원 여부: 예
출력 인수
c
— 몫
스칼라 | 벡터 | 행렬 | 다차원 배열
해로, 스칼라, 벡터, 행렬 또는 다차원 배열로 반환됩니다.
c
의 크기는 a
와 b
의 차원에 대한 묵시적 확장에 의해 결정됩니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
알고리즘
a
와 b
가 모두 fi
객체이면 c
는 a
와 동일한 fimath
객체를 갖습니다. c
가 fi
Fixed
데이터형을 갖고 입력값 중 하나라도 fi
부동소수점 데이터형을 갖으면 fi
부동소수점은 고정소수점 값으로 변환됩니다. 중간 수량은 a
의 fimath
객체를 사용하여 계산됩니다.
a
또는 b
중 하나는 fi
객체이고 다른 하나는 MATLAB® 내장 숫자형이면 내장 객체는 fi
객체의 워드 길이로 형변환되고 최적 정밀도의 소수부 길이를 유지합니다. 중간 수량은 입력 fi
객체의 fimath
객체를 사용하여 계산됩니다.
a
와 b
가 모두 MATLAB 내장 double형이면, c
는 부동소수점 몫 a./b
이고 numerictype
T
는 무시됩니다.
데이터형 전파 규칙
Fixed-Point Designer™에서 numerictype
객체 T
를 사용하는 구문의 경우, divide
함수는 다음 표에 나와 있는 데이터형 전파 규칙을 따릅니다. 대부분의 경우 부동소수점 데이터형이 전파됩니다. 따라서 사용자는 고정소수점 입력값과 부동소수점 입력값에 모두 사용 가능한 코드를 작성할 수 있습니다.
입력 fi 객체 a와 b의 데이터형 | numerictype 객체 T의 데이터형 | 출력 c의 데이터형 | |
---|---|---|---|
내장 | 내장 | 임의 | 내장 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| fi single |
|
|
|
|
|
|
|
|
|
|
|
|
| 입력값 |
|
|
|
|
|
|
|
|
|
|
| 입력값 |
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
fi
가 아닌 입력값은 모두 상수여야 합니다. 즉, 컴파일 시 그 값을 알고 있어야fi
객체로 형변환할 수 있습니다.복소수 및 허수 제수는 지원되지 않습니다.
코드 생성 시 구문
T.divide(a,b)
는 지원되지 않습니다.
HDL 코드 생성
HDL Coder™를 사용하여 FPGA 및 ASIC 설계를 위한 VHDL, Verilog 및 SystemVerilog 코드를 생성할 수 있습니다.
HDL 코드 생성 시, 제수는 상수이고 2의 거듭제곱이어야 합니다.
fi
가 아닌 입력값은 상수여야 합니다. 즉, 컴파일 시 그 값을 알고 있어야fi
객체로 형변환할 수 있습니다.복소수 및 허수 제수는 지원되지 않습니다.
MATLAB에서 코드 생성 시 구문
T.divide(a,b)
는 지원되지 않습니다.
버전 내역
R2006a 이전에 개발됨R2022a: 묵시적 확장 변경 사항이 연산자의 인수에 영향을 줌
R2022a부터는 fi
divide
에 대한 묵시적 확장이 추가되어, 이전에 오류를 반환했던 기본 연산의 일부 인수 조합이 이제는 결과를 생성합니다.
요소별 연산자를 사용하는 코드이면서 MATLAB이 이전에 크기 불일치에 대해(특히 try/catch
블록 내에서) 반환하던 오류에 의존하는 코드라면, 해당 코드는 더 이상 이러한 오류를 캐치하지 않을 수 있습니다.
기본 배열 연산에 필요한 입력 크기에 대한 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.
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)