Numerical error using the "diff" function
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Michael Loibl
le 22 Fév 2021
Réponse apportée : Stephen23
le 22 Fév 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?
0 commentaires
Réponse acceptée
Stephen23
le 22 Fév 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)))
0 commentaires
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!