Error-check spacing of a vector
1 view (last 30 days)
Show older comments
Zheng Sen Ter
on 29 Sep 2021
Commented: Zheng Sen Ter
on 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.
0 Comments
Accepted Answer
Geoff Hayes
on 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.
More Answers (0)
See Also
Categories
Find more on Mathematics and Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!