Modulo with expression not the same as modulo with value

5 Ansichten (letzte 30 Tage)
James
James am 18 Jul. 2025
Bearbeitet: James am 18 Jul. 2025
Why does mod(1, Y-X) not approximately equal 0?
mod(1, 0.1)
ans = 0
X = 2;
Y = 2.1;
Y - X
ans = 0.1000
mod(1, Y - X)
ans = 0.1000
I realize that Y - X ~= 0.1 but
isapprox(Y - X, 0.1, "loose")
ans = logical
1
therefore, why not
isapprox(mod(1, Y - X), 0, "loose")
ans = logical
0
My guess is that it is either something to do with floating point precision or the fact that it is an expression vs. a value?

Akzeptierte Antwort

Matt J
Matt J am 18 Jul. 2025
Bearbeitet: Matt J am 18 Jul. 2025
Because mod(1,z) is a discontinuous function of z at 0.1,
fplot(@(z) mod(1,z),[0,0.2])
  1 Kommentar
James
James am 18 Jul. 2025
Bearbeitet: James am 18 Jul. 2025
Ah right, thought I was missing something obvious, thanks.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2025a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by