Strange behavior of diff()

4 vues (au cours des 30 derniers jours)
Paul
Paul le 25 Fév 2016
Réponse apportée : Paul le 14 Mar 2018
Hi all,
I'm using 2012b and I'm trying to find the difference between successive elements of a vector of uint64 numbers. Here's some of them, but I get very puzzling results form diff(). For instance:
a = [4648759972
4648759972
4651621722
4652352784
4652733003
4653926753]
Then diff(a) gives the wrong result:
[5166781
5166781
2305031
1573969
1193750]
However diff(a(1:2)) gives the correct result: 0. Also diff(a(2:3)) gives the correct result: 2861750
I've been searching for an explanation but I did not find a similar problem ever reported, and I don't understand what is happening. Can anybody explain to me what is going on here?
Thanks a lot!
Paul
  8 commentaires
Walter Roberson
Walter Roberson le 27 Fév 2016
And to ask more directly,
which diff(uint64(0))
that will ensure you get the correct function shown for whatever uint64 is resolving to for you.
Paul
Paul le 14 Mar 2018
Thanks Walter; an external toolbox rerouted the call to an external diff function with bad behavior. Deleting that function solved all problems. Sorry for the late reply.

Connectez-vous pour commenter.

Réponse acceptée

Paul
Paul le 14 Mar 2018
Problem solved; external diff function caused bad behavior; deleting this external function solved the problem.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by