changeset 1713:d9e42d0bab09

[project @ 1996-01-08 02:22:55 by jwe] Initial revision
author jwe
date Mon, 08 Jan 1996 02:22:55 +0000
parents 26a5b528968c
children b3a4b62884b9
files scripts/plot/meshgrid.m
diffstat 1 files changed, 60 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/plot/meshgrid.m	Mon Jan 08 02:22:55 1996 +0000
@@ -0,0 +1,60 @@
+# Copyright (C) 1993, 1994, 1995 John W. Eaton
+# 
+# This file is part of Octave.
+# 
+# Octave is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+# 
+# Octave is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with Octave; see the file COPYING.  If not, write to the Free
+# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+function [xx, yy] = meshgrid (x, y)
+
+# usage: [xx, yy] = meshgrid (x, y)
+#
+# Given vectors of x and y coordinates, return two matrices corresponding
+# to the x and y coordinates of a mesh.  The rows of xx are copies of x,
+# and the columns of yy are copies of y.
+#
+# [xx, yy] = meshgrid (x) is an abbreviation for [xx, yy] = meshgrid (x, x).
+#
+# See also: plot, semilogx, semilogy, loglog, polar, mesh, meshdom, contour,
+#           bar, stairs, gplot, gsplot, replot, xlabel, ylabel, title 
+
+  if (nargin == 1)
+    y = x;
+  endif
+  if (nargin > 0 && nargin < 3)
+    if (is_vector (x) && is_vector (y))
+      xlen = length (x);
+      ylen = length (y);
+      xx = zeros (ylen, xlen);
+      yy = zeros (ylen, xlen);
+      if (columns (x) == 1)
+        x = x';
+      endif
+      if (rows (y) == 1)
+        y = y';
+      endif
+      for i = 1:ylen
+        xx(i,:) = x;
+      endfor
+      for i = 1:xlen
+        yy(:,i) = y;
+      endfor
+    else
+      error ("meshgrid: arguments must be vectors");
+    endif
+  else
+    usage ("[xx, yy] = meshgrid (x, y)");
+  endif
+
+endfunction