Filter löschen
Filter löschen

How can I calculate max and min in degree?

3 Ansichten (letzte 30 Tage)
Matthias
Matthias am 11 Apr. 2014
Beantwortet: Walter Roberson am 11 Apr. 2014
I've got an Array with my Phase Phi in degrees:[ 170°,179°,180°,-179°...] ranging from -180° to 180° and I want to calculate how much it drifts over time. My current method of
phi = [ 170,179,180,-179]
drift =max(phi)-min(phi)
doesn't work, because 180°-(-179°) = 359°, while it should be 11°(from 170° to -179°). The Problem is that degrees are a cylic(x°= (x-360)°) unit unlike most units.
Is the a smart way to calculate the maximum phase drift?
  2 Kommentare
Image Analyst
Image Analyst am 11 Apr. 2014
If it goes from 179 to -179, isn't that a difference of 2? From 179 to 180 is 1, and 180 is the same as -180, so then from -180 to -179 is another 1, for a total of 2. At least that's how I view it.
Matthias
Matthias am 11 Apr. 2014
It was a little confusing. I tried to fix that. Now you can enter the Example in Matlab

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Mischa Kim
Mischa Kim am 11 Apr. 2014
Bearbeitet: Mischa Kim am 11 Apr. 2014
How about
drift = max(abs(diff(phi)));
By the way, how do you get 11°? Is that from a different set of data points not shown in your vector above?
  3 Kommentare
Mischa Kim
Mischa Kim am 11 Apr. 2014
Bearbeitet: Mischa Kim am 11 Apr. 2014
Understood. Do you have access to the Statistics Toolbox?
phi = [170,179,180,-179]';
drift = max(pdist(phi + 360*(phi<0)));
Matthias
Matthias am 11 Apr. 2014
Bearbeitet: Matthias am 11 Apr. 2014
This seems to just shift the problem:
phi = [4,-4]';drift = max(pdist(phi + 360*(phi<0)))
drift =
352

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 11 Apr. 2014
Use unwrap() before the diff()

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by