Main Content

divide

fi 객체 나누기

설명

예제

c = divide(T,a,b)a의 요소를 b의 요소로 나눕니다. 결과 cnumerictype 객체 T로 지정된 숫자형을 갖습니다.

예제

모두 축소

이 예제에서는 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 함수를 사용한 경우에는 몫이 ab의 정밀도와 관계없이 완전한 80비트로 계산됨을 알 수 있습니다. 따라서 fi 객체 c가 IEEE® 표준 배정밀도 부동소수점 숫자보다 더 정확하게 1/10을 표현합니다.

입력 인수

모두 축소

출력값의 숫자형으로, numerictype 객체로 지정됩니다.

분자로, 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.

입력값 ab는 동일한 크기이거나 호환되는 크기를 가져야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
복소수 지원 여부:

분모로, 실수형 스칼라, 벡터, 행렬 또는 다차원 배열로 지정됩니다.

입력값 ab는 동일한 크기이거나 호환되는 크기를 가져야 합니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
복소수 지원 여부:

출력 인수

모두 축소

해로, 스칼라, 벡터, 행렬 또는 다차원 배열로 반환됩니다.

c의 크기는 ab의 차원에 대한 묵시적 확장에 의해 결정됩니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

알고리즘

모두 축소

ab가 모두 fi 객체이면 ca와 동일한 fimath 객체를 갖습니다. cfi Fixed 데이터형을 갖고 입력값 중 하나라도 fi 부동소수점 데이터형을 갖으면 fi 부동소수점은 고정소수점 값으로 변환됩니다. 중간 수량은 afimath 객체를 사용하여 계산됩니다.

a 또는 b 중 하나는 fi 객체이고 다른 하나는 MATLAB® 내장 숫자형이면 내장 객체는 fi 객체의 워드 길이로 형변환되고 최적 정밀도의 소수부 길이를 유지합니다. 중간 수량은 입력 fi 객체의 fimath 객체를 사용하여 계산됩니다.

ab가 모두 MATLAB 내장 double형이면, c는 부동소수점 몫 a./b이고 numerictype T는 무시됩니다.

데이터형 전파 규칙

Fixed-Point Designer™에서 numerictype 객체 T를 사용하는 구문의 경우, divide 함수는 다음 표에 나와 있는 데이터형 전파 규칙을 따릅니다. 대부분의 경우 부동소수점 데이터형이 전파됩니다. 따라서 사용자는 고정소수점 입력값과 부동소수점 입력값에 모두 사용 가능한 코드를 작성할 수 있습니다.

입력 fi 객체 a와 b의 데이터형numerictype 객체 T의 데이터형출력 c의 데이터형

내장 double

내장 double

임의

내장 double

fi Fixed

fi Fixed

fi Fixed

numerictype 객체 T의 데이터형

fi Fixed

fi Fixed

fi double

fi double

fi Fixed

fi Fixed

fi single

fi single

fi Fixed

fi Fixed

fi ScaledDouble

numerictype 객체 T의 속성을 갖는 fi ScaledDouble

fi double

fi double

fi Fixed

fi double

fi double

fi double

fi double

fi double

fi double

fi double

fi single

fi single

fi double

fi double

fi ScaledDouble

fi double

fi single

fi single

fi Fixed

fi single

fi single

fi single

fi double

fi double

fi single

fi single

fi single

fi single

fi single

fi single

fi ScaledDouble

fi single

fi ScaledDouble

fi ScaledDouble

fi Fixed

입력값 a 또는 b 중 하나가 fi ScaledDouble 유형이면 출력값 cnumerictype 객체 T의 속성을 갖는 fi ScaledDouble 유형입니다.

fi ScaledDouble

fi ScaledDouble

fi double

fi double

fi ScaledDouble

fi ScaledDouble

fi single

fi single

fi ScaledDouble

fi ScaledDouble

fi ScaledDouble

입력값 a 또는 b 중 하나가 fi ScaledDouble 유형이면 출력값 cnumerictype 객체 T의 속성을 갖는 fi ScaledDouble 유형입니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장

참고 항목

| | | | | | | |