diff --git a/matlab/interpos_nan.m b/matlab/interpos_nan.m
new file mode 100644
index 0000000000000000000000000000000000000000..396b06b3ce1c00e2f9d89a07d9900530c8afed24
--- /dev/null
+++ b/matlab/interpos_nan.m
@@ -0,0 +1,56 @@
+function [varargout] = interpos_nan(var1, var2, var3, varargin);
+%
+% see help interpos for details
+%
+% pre-exclude NaNs from either xin or yin before calling interpos
+%
+nverbose = 1; % warnings
+%
+if nargin < 3
+  error('xin and yin required');
+else
+  if isscalar(var1)
+    xin = var2;
+    yin = var3;
+    kopt_provided = 1;
+  else
+    xin = var1;
+    yin = var2;
+    kopt_provided = 0;
+  end
+  if nverbose >= 1 && (any(isnan(xin)) || any(isnan(yin))), warning('NaNs removed by interpos_nan'); end
+end
+
+ij = find(~isnan(xin) & ~isnan(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
+  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
+  end
+else
+  if nargout > 0
+    varargout = cell(nargout,1);
+    warning('Only NaNs in xin/yin');
+  end
+end
diff --git a/matlab/tests_matlab.m b/matlab/tests_matlab.m
index 1e976753384bc85c1278424ef9ff2f11be1cc881..a2055fcc858b9e117b3461abf2aef6c3e23f8dd1 100644
--- a/matlab/tests_matlab.m
+++ b/matlab/tests_matlab.m
@@ -2,12 +2,7 @@ function tests_matlab(test_case)
 try
    fprintf('\n Running test file: %s\n',mfilename('fullpath'));
    fprintf('     Time: %s\n',datestr(now));
-   which interpos
-   which interpos_nan
-   ls /home/sauter/interpos/matlab
-   !uname -a
-   passed = true
-   %passed = run_gdat_tests(test_case); % call to your test script here, with optional test_case input
+   passed = run_gdat_tests(test_case); % call to your test script here, with optional test_case input
    exit_code = int32(~passed); % convert to bash shell convention
 catch ME
    disp(getReport(ME))