Learn R Programming

pracma (version 0.9.6)

rand: Create Random Matrices

Description

Create random matrices or random points in a unit circle (Matlab style).

Usage

rand(n = 1, m = n)
randn(n = 1, m = n)
randi(imax, n = 1, m = n)
randp(n = 1, r = 1)

Arguments

n, m
integers specifying the size of the matrix
imax
integer or pair of integers
r
radius of circle, default 1.

Value

  • Matrices of size nxm resp. a vector of length n.

    randp() returns a pair of values representing a point in the circle, or a matrix of size (n,2).

Details

rand(), randn(), randi() create random matrices of size n x m, where the default is square matrices if m is missing.

rand() uses the uniform distribution on ]0, 1[, while randn() uses the normal distribution with mean 0 and standard deviation 1.

randi() generates integers between imax[1] and imax[2] resp. 1 and imax, if imax is a scalar.

randp() generate uniformly random points in the unit circle (or in a circle of radius r). It does that by generating tuples of points and rejects those outside the circle. n can only be a vector.

See Also

set.seed

Examples

Run this code
rand(3)
randn(1, 5)
randi(c(1,6), 1, 10)

U <- randp(1000, 2)
plot(U[, 1], U[, 2], pch="+")

#-- v is 2 independent normally distributed elements
# u <- randp(1); r <- t(u) %*% u
# v <- sqrt(-2 * log(r)/r) * u

n <- 5000; U <- randp(n)
R <- apply(U*U, 1, sum)
P <- sqrt(-2 * log(R)/R) * U  # rnorm(2*n)
hist(c(P))

Run the code above in your browser using DataLab