Accelerating the pace of engineering and science

# Documentation Center

• Trial Software

# randsrc

Generate random matrix using prescribed alphabet

## Syntax

out = randsrc
out = randsrc(m)
out = randsrc(m,n)
out = randsrc(m,n,alphabet)
out = randsrc(m,n,[alphabet; prob])
out = randsrc(m,n,...,state);
out = randsrc(m,n,...,s);

## Description

out = randsrc generates a random scalar that is either -1 or 1, with equal probability.

out = randsrc(m) generates an m-by-m matrix, each of whose entries independently takes the value -1 with probability 1/2, and 1 with probability 1/2.

out = randsrc(m,n) generates an m-by-n matrix, each of whose entries independently takes the value -1 with probability 1/2, and 1 with probability 1/2.

out = randsrc(m,n,alphabet) generates an m-by-n matrix, each of whose entries is independently chosen from the entries in the row vector alphabet. Each entry in alphabet occurs in out with equal probability. Duplicate values in alphabet are ignored.

out = randsrc(m,n,[alphabet; prob]) generates an m-by-n matrix, each of whose entries is independently chosen from the entries in the row vector alphabet. Duplicate values in alphabet are ignored. The row vector prob lists corresponding probabilities, so that the symbol alphabet(k) occurs with probability prob(k), where k is any integer between one and the number of columns of alphabet. The elements of prob must add up to 1.

out = randsrc(m,n,...,state); is the same as the two preceding syntaxes, except that it first resets the state of the uniform random number generator rand to the integer state.

 Note:   This usage is deprecated and may be removed in a future release. Instead of state, use s, as in the following example.

This function uses, by default, the Mersenne Twister algorithm by Nishimura and Matsumoto.

 Note:   Using the state parameter causes this function to switch random generators to use the 'state' algorithm of the rand function.See rand for details on the generator algorithm.

out = randsrc(m,n,...,s); causes rand to use the random stream s. See RandStream for more details.

## Examples

To generate a 10-by-10 matrix whose elements are uniformly distributed among members of the set {-3,-1,1,3}, you can use either of these commands.

`out = randsrc(10,10,[-3 -1 1 3]);`
`out = randsrc(10,10,[-3 -1 1 3; .25 .25 .25 .25]);`

To skew the probability distribution so that -1 and 1 each occur with probability .3, while -3 and 3 each occur with probability .2, use this command.

`out = randsrc(10,10,[-3 -1 1 3; .2 .3 .3 .2]);`