user
How to compute modulo operation with MATLAB?
alphonsio

The MATLAB modulo function `mod(n,d)` returns the remainder after the division of n by d:

``````>>> mod(24,5)
4``````

In MATLAB, you can compute the modulo operation using the `mod` function. The syntax for the `mod` function is straightforward. Here's how you can use it:

### Syntax

``result = mod(a, b)``
• `a` is the dividend.
• `b` is the divisor.
• `result` is the remainder after division of `a` by `b`.

### Examples

1. Simple Modulo Operation

``````a = 10;
b = 3;
result = mod(a, b);
disp(result);``````

This will display `1` because 10 divided by 3 is 3 with a remainder of 1.

2. Negative Dividend

``````a = -10;
b = 3;
result = mod(a, b);
disp(result);``````

This will display `2` because the modulo operation in MATLAB always returns a result with the same sign as the divisor.

3. Negative Divisor

``````a = 10;
b = -3;
result = mod(a, b);
disp(result);``````

This will display `-2` because the remainder will have the same sign as the divisor.

### Using `rem` Function

MATLAB also provides another function `rem` which computes the remainder after division. The difference between `mod` and `rem` lies in how they handle negative values:

• `mod(a, b)` returns a result with the same sign as the divisor `b`.
• `rem(a, b)` returns a result with the same sign as the dividend `a`.

### Example with `rem`

``````a = -10;
b = 3;
result_mod = mod(a, b);
result_rem = rem(a, b);
disp(['mod: ', num2str(result_mod)]);
disp(['rem: ', num2str(result_rem)]);``````

This will display:

``````mod: 2
rem: -1``````

In this example:

• `mod(-10, 3)` returns `2` because the result has the same sign as `3`.
• `rem(-10, 3)` returns `-1` because the result has the same sign as `-10`.

By using the `mod` and `rem` functions appropriately, you can perform modulo operations in MATLAB to suit different requirements for handling positive and negative numbers.