Main Content

rem

Remainder after division

Description

r = rem(a,b) returns the remainder after division of a by b, where a is the dividend and b is the divisor. This function is often called the remainder operation, which can be expressed as r = a - b.*fix(a./b). The rem function follows the convention that rem(a,0) is NaN.

example

Examples

collapse all

Compute the remainder after dividing 5 into 23.

a = 23;
b = 5;
r = rem(a,b)
r = 
3

Find the remainder after division for a vector of integers and the divisor 3.

a = 1:5;
b = 3;
r = rem(a,b)
r = 1×5

     1     2     0     1     2

Find the remainder after division for a set of integers including both positive and negative values. Note that nonzero results have the same sign as the dividend.

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

    -1    -1     1     0

Find the remainder after division for several angles using a divisor of 2*pi. When possible, rem attempts to produce exact integer results by compensating for floating-point round-off effects.

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

         0    3.5000    5.9000    6.2000    2.7168         0

Input Arguments

collapse all

Dividend, specified as a scalar, vector, matrix, multidimensional array, table, or timetable. a must be a real-valued array of any numerical type. Inputs a and b must either be the same size or have sizes that are compatible (for example, a is an M-by-N matrix and b is a scalar or 1-by-N row vector). For more information, see Compatible Array Sizes for Basic Operations.

If a is a duration array and b is a numeric array, then the values in b are treated as numbers of 24-hour days.

If one input has an integer data type, then the other input must be of the same integer data type or be a scalar double.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

Divisor, specified as a scalar, vector, matrix, multidimensional array, table, or timetable. b must be a real-valued array of any numerical type. Inputs a and b must either be the same size or have sizes that are compatible (for example, a is an M-by-N matrix and b is a scalar or 1-by-N row vector). For more information, see Compatible Array Sizes for Basic Operations.

If b is a duration array and a is a numeric array, then the values in a are treated as numbers of 24-hour days.

If one input has an integer data type, then the other input must be of the same integer data type or be a scalar double.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

More About

collapse all

Extended Capabilities

expand all

Version History

Introduced before R2006a

expand all

See Also