View Raw SPL
/*****************************************************************************
* *
* MESHGRID.SPL Copyright (C) 2002 DSP Development Corporation *
* All Rights Reserved *
* *
* Author: Randy Race *
* *
* Synopsis: Creates XY values from input series for 3D plots *
* *
* Revisions: 4 Jan 2002 RRR Creation *
* *
*****************************************************************************/
#if @HELP_MESHGRID
Purpose: Creates 2D XY values from X and Y input series.
Syntax: (x, y) = MESHGRID(xser, yser)
xser - A series, the x range.
yser - A series, the y range.
Returns: Two arrays of X and Y values.
Example:
(x, y) = meshgrid(-2..0.1..2, -2..0.1..2);
cos(x*y);
generates an interesting 2D cosine plot.
Remarks:
See FXYVALS to generate XY value from scalar parameters.
See Also:
Fxyvals
Gline
Ravel
#endif
/* create z = f(x, y) grid from x and y series */
meshgrid(x, y)
{
local xl, yl, xo, yo;
if (argc < 2)
{
if (argc < 1) error("meshgrid - x and y series required");
y = x;
}
/* row and column lengths */
xl = length(x);
yl = length(y);
/* create arrays from series */
xo = ravel(rep(x, yl), xl);
yo = rep(y', xl);
/* set correct deltas and offsets */
setdeltay(xo, deltay(yo));
setdeltax(yo, deltax(xo));
setyoffset(xo, yoffset(yo));
setxoffset(yo, xoffset(xo));
return(xo, yo);
}