Numerical error using the "diff" function

5 visualizaciones (últimos 30 días)
Michael Loibl
Michael Loibl el 22 de Feb. de 2021
Respondida: Stephen23 el 22 de Feb. de 2021
I want to determine the max difference between adjacent entries of a vector.
vector = [0 0 0 0.2 0.4 0.6 0.7 0.85 1 1 1];
difference = diff(vector);
i=find(diff(vector) == max(diff(vector)))
For the exemplary vector I would expect the following output:
i =
3 4 5
However, I get:
i =
3 4
The third one is missing. Checking this value, indeed I see some numerical error which should not be there.
Do I really have to use an almost equal function in order to solve this issue?

Respuesta aceptada

Stephen23
Stephen23 el 22 de Feb. de 2021
V = [0,0,0,0.2,0.4,0.6,0.7,0.85,1,1,1];
D = diff(V);
X = find(ismembertol(D,max(D)))
X = 1×3
3 4 5

Más respuestas (0)

Categorías

Más información sobre Mathematics en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by