help-octave
[Top][All Lists]

## axis & randn

 From: John Eaton Subject: axis & randn Date: Fri, 3 Nov 1995 00:18:59 -0600

```Jerry Lynch <address@hidden> 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

```