Mercurial > octave-nkf
view doc/interpreter/interpimages.m @ 6743:f11fec9c06b0
[project @ 2007-06-18 19:12:48 by dbateman]
author | dbateman |
---|---|
date | Mon, 18 Jun 2007 19:12:48 +0000 |
parents | 8bfb4ff637e1 |
children | fd42779a8428 |
line wrap: on
line source
function interpimages (nm, typ) bury_output (); if (strcmp (nm, "interpft")) t = 0 : 0.3 : pi; dt = t(2)-t(1); n = length (t); k = 100; ti = t(1) + [0 : k-1]*dt*n/k; y = sin (4*t + 0.3) .* cos (3*t - 0.1); yp = sin (4*ti + 0.3) .* cos (3*ti - 0.1); plot (ti, yp, 'g', ti, interp1(t, y, ti, 'spline'), 'b', ... ti, interpft (y, k), 'c', t, y, 'r+'); legend ('sin(4t+0.3)cos(3t-0.1','spline','interpft','data'); print (strcat (nm, ".", typ), strcat ("-d", typ)) elseif (strcmp (nm, "interpn")) 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'); mesh (zi, yi, squeeze (vi(1,:,:))); print (strcat (nm, ".", typ), strcat ("-d", typ)) elseif (strcmp (nm, "interpderiv1")) t = -2:2; dt = 1; ti =-2:0.025:2; dti = 0.025; y = sign(t); ys = interp1(t,y,ti,'spline'); yp = interp1(t,y,ti,'pchip'); plot (ti, ys,'r-', ti, yp,'g-'); legend('spline','pchip', 4); print (strcat (nm, ".", typ), strcat ("-d", typ)) elseif (strcmp (nm, "interpderiv2")) t = -2:2; dt = 1; ti =-2:0.025:2; dti = 0.025; y = sign(t); ddys = diff(diff(interp1(t,y,ti,'spline'))./dti)./dti; ddyp = diff(diff(interp1(t,y,ti,'pchip'))./dti)./dti; plot (ti(2:end-1),ddys,'r*', ti(2:end-1),ddyp,'g+'); legend('spline','pchip'); print (strcat (nm, ".", typ), strcat ("-d", typ)) endif bury_output (); endfunction ## Use this function before plotting commands and after every call to ## print since print() resets output to stdout (unfortunately, gnpulot ## can't pop output as it can the terminal type). function bury_output () f = figure (1); set (f, "visible", "off"); endfunction