From f8cc97714d99ca156961e027efb7e529089d147c Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Thu, 19 Sep 2024 09:47:01 +0200 Subject: [PATCH] simplify interpos_nan and use isfinite --- matlab/interpos_nan.m | 28 +++++----------------------- matlab/tests/test_requestnames.m | 2 +- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/matlab/interpos_nan.m b/matlab/interpos_nan.m index 396b06b3..1b2e116b 100644 --- a/matlab/interpos_nan.m +++ b/matlab/interpos_nan.m @@ -2,7 +2,7 @@ function [varargout] = interpos_nan(var1, var2, var3, varargin); % % see help interpos for details % -% pre-exclude NaNs from either xin or yin before calling interpos +% pre-exclude non-finite values from either xin or yin before calling interpos % nverbose = 1; % warnings % @@ -18,35 +18,17 @@ else yin = var2; kopt_provided = 0; end - if nverbose >= 1 && (any(isnan(xin)) || any(isnan(yin))), warning('NaNs removed by interpos_nan'); end + if nverbose >= 1 && (any(~isfinite(xin)) || any(~isfinite(yin))), warning('NaNs removed by interpos_nan'); end end -ij = find(~isnan(xin) & ~isnan(yin)); +ij = find(isfinite(xin) & isfinite(yin)); if ~isempty(ij) xin_eff = xin(ij); yin_eff = yin(ij); if kopt_provided == 1 - switch nargout - case 1 - [varargout{1}] = interpos(var1, xin_eff, yin_eff, varargin{:}); - case 2 - [varargout{1},varargout{2}] = interpos(var1, xin_eff, yin_eff, varargin{:}); - case 3 - [varargout{1},varargout{2},varargout{3}] = interpos(var1, xin_eff, yin_eff, varargin{:}); - otherwise - [varargout{1},varargout{2},varargout{3},varargout{4}] = interpos(var1, xin_eff, yin_eff, varargin{:}); - end + [varargout{1:nargout}] = interpos(var1, xin_eff, yin_eff, varargin{:}); else - switch nargout - case 1 - [varargout{1}] = interpos(xin_eff, yin_eff, var3, varargin{:}); - case 2 - [varargout{1},varargout{2}] = interpos(xin_eff, yin_eff, var3, varargin{:}); - case 3 - [varargout{1},varargout{2},varargout{3}] = interpos(xin_eff, yin_eff, var3, varargin{:}); - otherwise - [varargout{1},varargout{2},varargout{3},varargout{4}] = interpos(xin_eff, yin_eff, var3, varargin{:}); - end + [varargout{1:nargout}] = interpos(xin_eff, yin_eff, var3, varargin{:}); end else if nargout > 0 diff --git a/matlab/tests/test_requestnames.m b/matlab/tests/test_requestnames.m index b8fae2bb..b37be790 100644 --- a/matlab/tests/test_requestnames.m +++ b/matlab/tests/test_requestnames.m @@ -37,7 +37,7 @@ classdef (SharedTestFixtures={... shot = 81102; gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request); case {'mpx', 'xte'} - % need a older shot + % need an older shot shot = 65555; gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request); end -- GitLab