Modulo with expression not the same as modulo with value

8 vues (au cours des 30 derniers jours)
James
James le 18 Juil 2025
Modifié(e) : James le 18 Juil 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?

Réponse acceptée

Matt J
Matt J le 18 Juil 2025
Modifié(e) : Matt J le 18 Juil 2025
Because mod(1,z) is a discontinuous function of z at 0.1,
fplot(@(z) mod(1,z),[0,0.2])
  1 commentaire
James
James le 18 Juil 2025
Modifié(e) : James le 18 Juil 2025
Ah right, thought I was missing something obvious, thanks.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Tags

Produits


Version

R2025a

Community Treasure Hunt

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

Start Hunting!

Translated by