From owner-help-octave at bevo dot che dot wisc dot edu Fri Nov 3 00:19:00 1995 Subject: axis & randn From: John Eaton To: Jerry Lynch Cc: help-octave at bevo dot che dot wisc dot edu Date: Fri, 3 Nov 1995 00:18:59 -0600 Jerry Lynch wrote: : will there be a 'randn' function instead of : needing to use 'rand'? Yes, I just updated the random number generator functions to add randn and use separate generators and seeds for normal and uniform distributions. If you're not too picky about whether the two sequences actually use different generators and seeds, you could use a function like this for randn: function y = randn (x1, x2) unwind_protect save_dist = rand ("dist"); rand ("normal"); if (nargin == 0) y = rand (); elseif (nargin == 1) y = rand (x1); elseif (nargin == 2) y = rand (x1, x2); endif unwind_protect_cleanup rand (save_dist); end_unwind_protect endfunction : And will the 'v=axis' command return the axis values for the current : figure? Here's a patch: *** scripts/plot/axis.m 1995/06/25 19:56:32 --- scripts/plot/axis.m 1995/11/03 05:56:06 *************** *** 16,22 **** # along with Octave; see the file COPYING. If not, write to the Free # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! function axis (ax) # usage: axis () # axis ([xmin, xmax]) --- 16,22 ---- # along with Octave; see the file COPYING. If not, write to the Free # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! function curr_axis = axis (ax) # usage: axis () # axis ([xmin, xmax]) *************** *** 30,35 **** --- 30,44 ---- # If your plot is already drawn, then you need to REPLOT before # the new axis limits will take effect. + # This may not be correct if someone has used the gnuplot interface + # directly... + + global __current_axis__; + + if (! exist ("__current_axis__")) + __current_axis__ = [-10, 10, -10, 10]; + endif + if (nargin > 1) usage ("axis ([xmin, xmax, ymin, ymax, zmin, zmax])"); endif *************** *** 36,41 **** --- 45,51 ---- if (nargin == 0) set autoscale; + curr_axis = __current_axis__; elseif (is_vector (ax)) len = length (ax); *************** *** 44,49 **** --- 54,61 ---- error ("axis: expecting vector with 2, 4, or 6 elements"); endif + __current_axis__ = reshape (ax, 1, len); + if (len > 1) eval (sprintf ("set xrange [%g:%g];", ax (1), ax (2))); endif (This also points out that Octave really needs a way to create `static' variables, but that's a project for another day...) Thanks, jwe