Mercurial > hg > octave-nkf
diff scripts/general/interpn.m @ 14237:11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Add clf() to all demos using plot features to get reproducibility.
Use 64 as input to all colormaps (jet (64)) to get reproducibility.
* bicubic.m, cell2mat.m, celldisp.m, cplxpair.m, interp1.m, interp2.m,
interpft.m, interpn.m, profile.m, profshow.m, convhull.m, delaunay.m,
griddata.m, inpolygon.m, voronoi.m, autumn.m, bone.m, contrast.m, cool.m,
copper.m, flag.m, gmap40.m, gray.m, hot.m, hsv.m, image.m, imshow.m, jet.m,
ocean.m, pink.m, prism.m, rainbow.m, spring.m, summer.m, white.m, winter.m,
condest.m, onenormest.m, axis.m, clabel.m, colorbar.m, comet.m, comet3.m,
compass.m, contour.m, contour3.m, contourf.m, cylinder.m, daspect.m,
ellipsoid.m, errorbar.m, ezcontour.m, ezcontourf.m, ezmesh.m, ezmeshc.m,
ezplot.m, ezplot3.m, ezpolar.m, ezsurf.m, ezsurfc.m, feather.m, fill.m,
fplot.m, grid.m, hold.m, isosurface.m, legend.m, loglog.m, loglogerr.m,
pareto.m, patch.m, pbaspect.m, pcolor.m, pie.m, pie3.m, plot3.m, plotmatrix.m,
plotyy.m, polar.m, quiver.m, quiver3.m, rectangle.m, refreshdata.m, ribbon.m,
rose.m, scatter.m, scatter3.m, semilogx.m, semilogxerr.m, semilogy.m,
semilogyerr.m, shading.m, slice.m, sombrero.m, stairs.m, stem.m, stem3.m,
subplot.m, surf.m, surfc.m, surfl.m, surfnorm.m, text.m, title.m, trimesh.m,
triplot.m, trisurf.m, uigetdir.m, uigetfile.m, uimenu.m, uiputfile.m,
waitbar.m, xlim.m, ylim.m, zlim.m, mkpp.m, pchip.m, polyaffine.m, spline.m,
bicgstab.m, cgs.m, gplot.m, pcg.m, pcr.m, treeplot.m, strtok.m, demo.m,
example.m, rundemos.m, speed.m, test.m, calendar.m, datestr.m, datetick.m,
weekday.m: Revamp %!demos to use Octave coding conventions on spacing, etc.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 20 Jan 2012 12:59:53 -0800 |
parents | 72c96de7a403 |
children | c4fa5e0b6193 |
line wrap: on
line diff
--- a/scripts/general/interpn.m +++ b/scripts/general/interpn.m @@ -209,93 +209,93 @@ endfunction + %!demo -%! A=[13,-1,12;5,4,3;1,6,2]; -%! x=[0,1,4]; y=[10,11,12]; -%! xi=linspace(min(x),max(x),17); -%! yi=linspace(min(y),max(y),26)'; -%! mesh(xi,yi,interpn(x,y,A.',xi,yi,"linear").'); -%! [x,y] = meshgrid(x,y); -%! hold on; plot3(x(:),y(:),A(:),"b*"); hold off; +%! clf; +%! A = [13,-1,12;5,4,3;1,6,2]; +%! x = [0,1,4]; y = [10,11,12]; +%! xi = linspace (min(x), max(x), 17); +%! yi = linspace (min(y), max(y), 26)'; +%! mesh (xi, yi, interpn (x,y,A.',xi,yi, "linear").'); +%! [x,y] = meshgrid (x,y); +%! hold on; plot3 (x(:),y(:),A(:),"b*"); hold off; %!demo -%! A=[13,-1,12;5,4,3;1,6,2]; -%! x=[0,1,4]; y=[10,11,12]; -%! xi=linspace(min(x),max(x),17); -%! yi=linspace(min(y),max(y),26)'; -%! mesh(xi,yi,interpn(x,y,A.',xi,yi,"nearest").'); -%! [x,y] = meshgrid(x,y); -%! hold on; plot3(x(:),y(:),A(:),"b*"); hold off; +%! clf; +%! A = [13,-1,12;5,4,3;1,6,2]; +%! x = [0,1,4]; y = [10,11,12]; +%! xi = linspace (min(x), max(x), 17); +%! yi = linspace (min(y), max(y), 26)'; +%! mesh (xi, yi, interpn (x,y,A.',xi,yi, "nearest").'); +%! [x,y] = meshgrid (x,y); +%! hold on; plot3 (x(:),y(:),A(:),"b*"); hold off; -%!#demo -%! A=[13,-1,12;5,4,3;1,6,2]; -%! x=[0,1,2]; y=[10,11,12]; -%! xi=linspace(min(x),max(x),17); -%! yi=linspace(min(y),max(y),26)'; -%! mesh(xi,yi,interpn(x,y,A.',xi,yi,"cubic").'); -%! [x,y] = meshgrid(x,y); -%! hold on; plot3(x(:),y(:),A(:),"b*"); hold off; +%!#demo # FIXME: Uncomment when support for "cubic" has been added +%! clf; +%! A = [13,-1,12;5,4,3;1,6,2]; +%! x = [0,1,2]; y = [10,11,12]; +%! xi = linspace (min(x), max(x), 17); +%! yi = linspace (min(y), max(y), 26)'; +%! mesh (xi, yi, interpn (x,y,A.',xi,yi, "cubic").'); +%! [x,y] = meshgrid (x,y); +%! hold on; plot3 (x(:),y(:),A(:),"b*"); hold off; %!demo -%! A=[13,-1,12;5,4,3;1,6,2]; -%! x=[0,1,2]; y=[10,11,12]; -%! xi=linspace(min(x),max(x),17); -%! yi=linspace(min(y),max(y),26)'; -%! mesh(xi,yi,interpn(x,y,A.',xi,yi,"spline").'); -%! [x,y] = meshgrid(x,y); -%! hold on; plot3(x(:),y(:),A(:),"b*"); hold off; - +%! clf; +%! A = [13,-1,12;5,4,3;1,6,2]; +%! x = [0,1,2]; y = [10,11,12]; +%! xi = linspace (min(x), max(x), 17); +%! yi = linspace (min(y), max(y), 26)'; +%! mesh (xi, yi, interpn (x,y,A.',xi,yi, "spline").'); +%! [x,y] = meshgrid (x,y); +%! hold on; plot3 (x(:),y(:),A(:),"b*"); hold off; %!demo +%! clf; %! x = y = z = -1:1; %! f = @(x,y,z) x.^2 - y - z.^2; %! [xx, yy, zz] = meshgrid (x, y, z); %! v = f (xx,yy,zz); %! xi = yi = zi = -1:0.1:1; %! [xxi, yyi, zzi] = ndgrid (xi, yi, zi); -%! vi = interpn(x, y, z, v, xxi, yyi, zzi, 'spline'); +%! vi = interpn (x, y, z, v, xxi, yyi, zzi, 'spline'); %! mesh (yi, zi, squeeze (vi(1,:,:))); - %!test -%! [x,y,z] = ndgrid(0:2); -%! f = x+y+z; -%! assert (interpn(x,y,z,f,[.5 1.5],[.5 1.5],[.5 1.5]), [1.5, 4.5]) -%! assert (interpn(x,y,z,f,[.51 1.51],[.51 1.51],[.51 1.51],'nearest'), [3, 6]) -%! assert (interpn(x,y,z,f,[.5 1.5],[.5 1.5],[.5 1.5],'spline'), [1.5, 4.5]) -%! assert (interpn(x,y,z,f,x,y,z), f) -%! assert (interpn(x,y,z,f,x,y,z,'nearest'), f) -%! assert (interpn(x,y,z,f,x,y,z,'spline'), f) +%! [x,y,z] = ndgrid (0:2); +%! f = x + y + z; +%! assert (interpn (x,y,z,f,[.5 1.5],[.5 1.5],[.5 1.5]), [1.5, 4.5]); +%! assert (interpn (x,y,z,f,[.51 1.51],[.51 1.51],[.51 1.51],"nearest"), [3, 6]); +%! assert (interpn (x,y,z,f,[.5 1.5],[.5 1.5],[.5 1.5],"spline"), [1.5, 4.5]); +%! assert (interpn (x,y,z,f,x,y,z), f); +%! assert (interpn (x,y,z,f,x,y,z,"nearest"), f); +%! assert (interpn (x,y,z,f,x,y,z,"spline"), f); %!test %! [x, y, z] = ndgrid (0:2, 1:4, 2:6); %! f = x + y + z; -%! xi = [0.5 1.0 1.5]; -%! yi = [1.5 2.0 2.5 3.5]; -%! zi = [2.5 3.5 4.0 5.0 5.5]; +%! xi = [0.5 1.0 1.5]; yi = [1.5 2.0 2.5 3.5]; zi = [2.5 3.5 4.0 5.0 5.5]; %! fi = interpn (x, y, z, f, xi, yi, zi); %! [xi, yi, zi] = ndgrid (xi, yi, zi); -%! assert (fi, xi + yi + zi) +%! assert (fi, xi + yi + zi); %!test -%! xi = 0:2; -%! yi = 1:4; -%! zi = 2:6; +%! xi = 0:2; yi = 1:4; zi = 2:6; %! [x, y, z] = ndgrid (xi, yi, zi); %! f = x + y + z; %! fi = interpn (x, y, z, f, xi, yi, zi, "nearest"); -%! assert (fi, x + y + z) +%! assert (fi, x + y + z); %!test -%! [x,y,z] = ndgrid(0:2); -%! f = x.^2+y.^2+z.^2; -%! assert (interpn(x,y,-z,f,1.5,1.5,-1.5), 7.5) +%! [x,y,z] = ndgrid (0:2); +%! f = x.^2 + y.^2 + z.^2; +%! assert (interpn (x,y,-z,f,1.5,1.5,-1.5), 7.5); -%!test % for Matlab-compatible rounding for 'nearest' -%! X = meshgrid (1:4); -%! assert (interpn (X, 2.5, 2.5, 'nearest'), 3); +%!test # for Matlab-compatible rounding for "nearest" +%! x = meshgrid (1:4); +%! assert (interpn (x, 2.5, 2.5, "nearest"), 3); -%!shared z, zout, tol +%!test %! z = zeros (3, 3, 3); %! zout = zeros (5, 5, 5); %! z(:,:,1) = [1 3 5; 3 5 7; 5 7 9]; @@ -303,12 +303,13 @@ %! z(:,:,3) = z(:,:,2) + 2; %! for n = 1:5 %! zout(:,:,n) = [1 2 3 4 5; -%! 2 3 4 5 6; +%! 2 3 4 5 6; %! 3 4 5 6 7; %! 4 5 6 7 8; %! 5 6 7 8 9] + (n-1); -%! end -%! tol = 10 * eps; -%!assert (interpn (z), zout, tol) -%!assert (interpn (z, "linear"), zout, tol) -%!assert (interpn (z, "spline"), zout, tol) +%! endfor +%! tol = 10*eps; +%! assert (interpn (z), zout, tol); +%! assert (interpn (z, "linear"), zout, tol); +%! assert (interpn (z, "spline"), zout, tol); +