Numerical error using the "diff" function

5 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Stephen23
Stephen23 il 22 Feb 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

Più risposte (0)

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by