mod

나눗셈의 나머지(모듈로 연산)

설명

예제

b = mod(a,m)am로 나눈 후 나머지를 반환합니다. 여기서 a는 피제수이고 m는 제수입니다. 이 함수는 흔히 모듈로 연산이라고도 하며 b = a - m.*floor(a./m)으로 표현할 수 있습니다. mod 함수는 mod(a,0)일 경우 a를 반환한다는 규칙을 따릅니다.

예제

모두 축소

23과 5 간의 모듈로 연산을 수행합니다.

b = mod(23,5)
b = 3

정수로 구성된 벡터를 제수 3으로 나눈 후의 나머지를 구합니다.

a = 1:5;
m = 3;
b = mod(a,m)
b = 1×5

     1     2     0     1     2

양수 값과 음수 값을 모두 포함한 정수 집합에 대해 나눗셈을 수행한 후의 나머지를 구합니다. 참고로, 제수가 양수인 경우 0이 아닌 결과는 항상 양수입니다.

a = [-4 -1 7 9];
m = 3;
b = mod(a,m)
b = 1×4

     2     2     1     0

양수 값과 음수 값을 모두 포함한 정수 집합을 음수인 제수로 나눈 후의 나머지를 구합니다. 참고로, 제수가 음수인 경우 0이 아닌 결과는 항상 음수입니다.

a = [-4 -1 7 9];
m = -3;
b = mod(a,m)
b = 1×4

    -1    -1    -2     0

2*pi로 모듈로 연산을 수행하여 여러 각도를 나눈 결과인 나머지를 구합니다. 참고로, mod는 부동소수점 반올림 효과를 보완하여 가능하면 정확한 정수 결과를 도출하려고 합니다.

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
m = 2*pi;
b = mod(theta,m)
b = 1×6

         0    3.5000    5.9000    6.2000    2.7168         0

입력 인수

모두 축소

피제수로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. a는 임의 숫자형의 실수 값 배열이어야 합니다. 숫자형 입력값 am은 동일한 크기이거나 호환되는 크기를 가져야 합니다. 후자의 예로는 aMxN 행렬이고 m이 스칼라이거나 1xN 행 벡터인 경우를 들 수 있습니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

am이 duration형 배열인 경우, 둘 중 하나가 스칼라가 아닌 한 크기가 동일해야 합니다. 한쪽 입력값이 duration형 배열인 경우 다른 쪽 입력값은 duration형 배열이거나 숫자형 배열일 수 있습니다. 이런 맥락에서 mod는 숫자형 값을 표준 24시간 일수로 처리합니다.

두 입력값 중 하나가 정수 데이터형인 경우 다른 입력값도 동일하게 정수 데이터형이거나 또는 double형 스칼라여야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char

제수로, 스칼라, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다. m은 임의 숫자형의 실수 값 배열이어야 합니다. 숫자형 입력값 am은 동일한 크기이거나 호환되는 크기를 가져야 합니다. 후자의 예로는 aMxN 행렬이고 m이 스칼라이거나 1xN 행 벡터인 경우를 들 수 있습니다. 자세한 내용은 기본 연산에 대해 호환되는 배열 크기 항목을 참조하십시오.

am이 duration형 배열인 경우, 둘 중 하나가 스칼라가 아닌 한 크기가 동일해야 합니다. 한쪽 입력값이 duration형 배열인 경우 다른 쪽 입력값은 duration형 배열이거나 숫자형 배열일 수 있습니다. 이런 맥락에서 mod는 숫자형 값을 표준 24시간 일수로 처리합니다.

두 입력값 중 하나가 정수 데이터형인 경우 다른 입력값도 동일하게 정수 데이터형이거나 또는 double형 스칼라여야 합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char

세부 정보

모두 축소

mod와 rem 간의 차이점

나눗셈의 나머지 개념에 대한 정의는 유일하지 않으며, 두 함수 modrem은 각각 다른 정의에 따라 계산합니다. mod 함수는 0이거나 제수와 동일한 부호를 갖는 결과를 산출합니다. 반면 rem 함수는 0이거나 피제수와 동일한 부호를 갖는 결과를 산출합니다.

또 다른 차이점은 제수가 0일 때의 규칙입니다. mod 함수는 mod(a,0)a를 반환한다는 규칙을 따르는 반면, rem 함수는 rem(a,0)NaN을 반환한다는 규칙을 따릅니다.

두 형식 모두 각각의 효용이 있습니다. 예를 들어, mod 함수는 그 출력값이 주기적(주기는 제수와 같음)이므로 신호 처리의 주기 신호의 맥락에서 유용합니다.

합동 관계

mod 함수는 합동 관계에 유용합니다. 즉, abmod(a,m) == mod(b,m)인 경우에만 합동(mod m)입니다. 예를 들어, 23과 13은 mod 5에 대해 합동입니다.

참고 문헌

[1] Knuth, Donald E. The Art of Computer Programming. Vol. 1. Addison Wesley, 1997 pp.39–40.

확장 기능

참고 항목

R2006a 이전에 개발됨