필터 지우기
필터 지우기

How can I calculate max and min in degree?

조회 수: 3 (최근 30일)
Matthias
Matthias 2014년 4월 11일
답변: Walter Roberson 2014년 4월 11일
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
Image Analyst
Image Analyst 2014년 4월 11일
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 2014년 4월 11일
It was a little confusing. I tried to fix that. Now you can enter the Example in Matlab

댓글을 달려면 로그인하십시오.

답변 (2개)

Mischa Kim
Mischa Kim 2014년 4월 11일
편집: Mischa Kim 2014년 4월 11일
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
Mischa Kim
Mischa Kim 2014년 4월 11일
편집: Mischa Kim 2014년 4월 11일
Understood. Do you have access to the Statistics Toolbox?
phi = [170,179,180,-179]';
drift = max(pdist(phi + 360*(phi<0)));
Matthias
Matthias 2014년 4월 11일
편집: Matthias 2014년 4월 11일
This seems to just shift the problem:
phi = [4,-4]';drift = max(pdist(phi + 360*(phi<0)))
drift =
352

댓글을 달려면 로그인하십시오.


Walter Roberson
Walter Roberson 2014년 4월 11일
Use unwrap() before the diff()

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by