看了下 这个还可以按照概率产生数值:真不错
RANDSRC Generate random matrix using prescribed alphabet.
OUT = RANDSRC generates a "-1" or "1" with equal probability.
OUT = RANDSRC(M) generates an M-by-M random bipolar matrix.
"-1" and "1" occur with equal probability.
OUT = RANDSRC(M,N) generates an M-by-N random bipolar matrix.
"-1" and "1" occur with equal probability.
OUT = RANDSRC(M,N,ALPHABET) generates an M-by-N random matrix, using the
alphabet specified in ALPHABET.
ALPHABET can be either a row vector or a two-row matrix:
Row : If ALPHABET is a row vector then the contents of ALPHABET define
Vector which possible elements RANDSRC can output. The elements of
ALPHABET may be either real or complex. If all entries of
ALPHABET are distinct, then the probability distribution is
uniform.
Two-Row : If ALPHABET is a two-row matrix, the first row defines the
Matrix possible outputs (as above). The second row of ALPHABET
specifies the probability for each corresponding element. The
elements of the second row must sum to one.
OUT = RANDSRC(M,N,ALPHABET,STATE) causes RAND to use the generator
determined by the 'state' method, and initializes the state of that
generator using the value of STATE.
Examples:
?out = randsrc(2,3) ?out = randsrc(2,3,[3 4])
out = out =
1 -1 -1 4 4 3
-1 -1 1 3 3 4
?out = randsrc(2,3,[3 4;0 1]) ?out = randsrc(2,3,[3 4;0.8 0.2])
out = out =
4 4 4 3 3 3
4 4 4 3 4 3
See also rand, randint, randerr.
Reference page in Help browser
doc randsrc