## Copyright (C) 2015 Oscar Monerris Belda ## ## This program is free software; you can redistribute it and/or modify it ## under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . ## -*- texinfo -*- ## @deftypefn {Function File} {@var{xwrap} =} wrapTo180 (@var{x}) ## ## Wraps x into the -180 to 180 interval ## ## @var{x}: angle in degrees (single value or vector) ## ## @example ## -160 = wrapTo180(200) ## @end example ## ## @seealso{unwrap, wrapToPi} ## @end deftypefn ## Author: Oscar Monerris Belda ## Created: 2015-12-09 ## v 0.4 function xwrap = wrapTo180 (x) xwrap = rem (x, 360); e = find (abs (xwrap) > 180); xwrap(e) -= 360 * sign (xwrap(e)); endfunction %!test %! c = [-721.1, -718.9, -481.3, -479.99, -361, -359, -200, -180-(1e-14), -180, ... %! -180-(2e-14), -160, -eps, 0, eps, 160, 180, 180+(1e-14), 180+(2e-14), 200]; %! assert (wrapTo180 (c), [-1.10, 1.10, -121.30, -119.99, -1.0, 1.0, 160.0, ... %! -180.0, -180.0, 180.0, -160.0, -0.0, 0.0, 0.0, ... %! 160.0, 180.0, 180.0, -180.0, -160.0], 1e-13);