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.