Effacer les filtres
Effacer les filtres

check if an array is equispaced

16 vues (au cours des 30 derniers jours)
Mireia Boneta Camí
Mireia Boneta Camí le 12 Oct 2020
Modifié(e) : Stephen23 le 12 Oct 2020
I am given a vector of numbers and I have to check if this vector has its samples equispaced or not. How can I do it without using fors?

Réponse acceptée

Ameer Hamza
Ameer Hamza le 12 Oct 2020
Modifié(e) : Ameer Hamza le 12 Oct 2020
Something like this
x = [1 2 3];
dx = diff(x);
is_equidistant = all(dx==dx(1));
Result
>> is_equidistant
is_equidistant =
logical
1
If
x = [1 2 5];
dx = diff(x);
is_equidistant = all(dx==dx(1));
Result
>> is_equidistant
is_equidistant =
logical
0
If you want to check it with a tolerance value
x = [1 2 3.00000000000001];
dx = diff(x);
is_equidistant = all(ismembertol(dx, dx(1)));
Result
>> is_equidistant
is_equidistant =
logical
1
  1 commentaire
Mireia Boneta Camí
Mireia Boneta Camí le 12 Oct 2020
thank you very much!!!

Connectez-vous pour commenter.

Plus de réponses (1)

Stephen23
Stephen23 le 12 Oct 2020
Modifié(e) : Stephen23 le 12 Oct 2020
>> v = [1,2,3,4,5,6,7];
>> x = ~any(diff(v,2))
x = 1
>> v = [1,2,4,4.5,7];
>> x = ~any(diff(v,2))
x = 0

Catégories

En savoir plus sur Gravitation, Cosmology & Astrophysics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by