How to make negative degree numbers positive while maintaining degree.
    10 views (last 30 days)
  
       Show older comments
    
    Kristin Aldridge
 on 21 Oct 2021
  
    
    
    
    
    Edited: Walter Roberson
      
      
 on 22 Oct 2021
            I'm trying to use
    if avg_deg < 0, avg_deg = avg_deg+360; end
but it isn't working. I don't want to use abs because I want to rotate these negative degrees to their positive counterpart, but the line of code isn't doing anything at all. 
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 21 Oct 2021
        You can use logical indexing....
avg_deg = randi([-719 719], 1, 10)
mask = avg_deg < 0;
new_deg_version_1 = avg_deg;
new_deg_version_1(mask) = new_deg_version_1(mask) + 360
But I would suggest that mod() is more reliable, since it can handle angles < -360 and angles >= 360
new_deg_version_2 = mod(avg_deg, 360)
2 Comments
  Walter Roberson
      
      
 on 22 Oct 2021
				
      Edited: Walter Roberson
      
      
 on 22 Oct 2021
  
			avg_deg = [randi([-719 719], 1, 5), -720, -360, 0, 360, 720]
new_deg_version_2 = mod(avg_deg, 360)
new_deg_version_3 = wrapTo360(avg_deg)
They differ on the treatment of positive multiples of 360.
More Answers (0)
See Also
Categories
				Find more on Shifting and Sorting Matrices in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!