Error-check spacing of a vector

1 vue (au cours des 30 derniers jours)
Zheng Sen Ter
Zheng Sen Ter le 29 Sep 2021
Commenté : Zheng Sen Ter le 29 Sep 2021
Hi, I encountered a problem doing integration using simpson 3/8 or 1/3 or trapezoid rule on 2 sets of vectors x and y. It turns out that the error occur in my function file. For integration, i need to check the spacing of vector x to be the same first.
let me put it like this example:
range = [10,20];
p = 1e-3;
x = range(1):p:range(2);
% check spacing
n = length(x)
h = x(2)-x(1)
for i = 2:n-1
if x(i+1) - x(i) ~= h
error('x spacing not correct')
end
end
Although each spacing of x should be the same, which is p=1e-3. However, the for loop gives error. (error: x spacing ot correct) . It doesnt give error if p = 1.
Is this because of the limitation of Matlab? Sorry if this is a pretty basic theory i should know.
Thanks for your help.

Réponse acceptée

Geoff Hayes
Geoff Hayes le 29 Sep 2021
Zheng - you are trying to compare two floating point numbers using (in this case) the inequality operand. When comparing two floats or doubles, you need to use a tolerance as described at Compare floating-point numbers as the equality (or inequality) operands will not necessarily give the desired result.
  1 commentaire
Zheng Sen Ter
Zheng Sen Ter le 29 Sep 2021
Got it. Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics and Optimization dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by