diff scripts/geometry/griddatan.m @ 28210:bb929d5a34cb

griddata.m: Added support for "v4" biharmonic spline interpolation method (bug #33539). * griddata.m: Add v4 method algorithm, documentation notes, and BIST tests. * griddatan.m: Updated method error messages and added BIST tests. * NEWS: Announce support for "v4" method in Matlab compatibility section.
author Nicholas R. Jankowski <jankowskin@asme.org>
date Thu, 09 Apr 2020 16:21:05 -0400
parents 2e6dc7e2b191
children 289882040316
line wrap: on
line diff
--- a/scripts/geometry/griddatan.m	Sat Apr 11 16:26:19 2020 -0700
+++ b/scripts/geometry/griddatan.m	Thu Apr 09 16:21:05 2020 -0400
@@ -89,8 +89,15 @@
       yi(valid) = sum (y(tri(tri_list,:)) .* bary_list, 2);
     endif
 
+  elseif (any (strcmp (method, {"cubic", "v4"})))
+    error ('griddata: "%s" METHOD only valid for 2-D inputs using "griddata"', method);
+
+  elseif (strcmp (method, "natural"))
+    ## FIXME: implement missing interpolation method 'natural' for 3-D inputs.
+    error ('griddatan: "natural" interpolation METHOD not yet implemented');
+
   else
-    error ("griddatan: unknown interpolation METHOD");
+    error ('griddatan: unknown interpolation METHOD: "%s"', method);
   endif
 
 endfunction
@@ -121,3 +128,16 @@
 %! y = [ 1; 2; 3; 4 ];
 %! xi = [ .5, .5 ];
 %! yi = griddatan (x, y, xi);
+
+## Test input validation
+%!error griddatan ()
+%!error griddatan (1)
+%!error griddatan (1,2)
+%!error griddatan (1,2,3)
+%!error <OPTIONS argument must be a string> griddatan (1,2,3,4,5)
+%!error <unknown interpolation METHOD> griddatan (1,2,3,4)
+%!#error <"v4" METHOD only valid for 2-D inputs>
+%! griddatan (ones(2,2,2), 2*ones(2,2,2), 3, "v4")
+%!error <"cubic" METHOD only valid for> griddatan (1, 2, 3, "cubic")
+%!error <"natural" .* not yet implemented> griddatan (1, 2, 3, "natural")
+%!error <unknown interpolation METHOD: "foobar"> griddatan (1, 2, 3, "foobar")