Main Content

rand

균일하게 분포된 난수

설명

X = rand는 구간 (0,1)의 균등분포에서 추출한 난수 스칼라를 반환합니다.

예제

X = rand(n)은 균등분포된 난수로 구성된 n×n 행렬을 반환합니다.

예제

X = rand(sz1,...,szN)은 난수로 구성된 sz1×...×szN 배열을 반환합니다. 여기서 sz1,...,szN은 각 차원의 크기를 나타냅니다. 예를 들어, rand(3,4)는 3×4 행렬을 반환합니다.

예제

X = rand(sz)는 난수로 구성된 배열을 반환합니다. 여기서 크기 벡터 szsize(X)를 정의합니다. 예를 들어, rand([3 4])는 3×4 행렬을 반환합니다.

예제

X = rand(___,typename)은 데이터형이 typename인 난수로 구성된 배열을 반환합니다. typename 입력값은 "single" 또는 "double"이 될 수 있습니다. 위에 열거된 구문의 모든 입력 인수와 사용할 수 있습니다.

예제

X = rand(___,"like",p)p와 유사한, 즉 데이터형, 실수/복소수 여부가 p와 동일한 난수로 구성된 배열을 반환합니다. typename이나 "like" 중 하나를 지정할 수 있으나, 둘 다 지정할 수는 없습니다.

X = rand(s,___)는 디폴트 전역 스트림 대신 난수 스트림 s에서 숫자를 생성합니다. 스트림을 만들려면 RandStream 함수를 사용하십시오. s를 지정하고 뒤이어 위에 열거된 구문에 나와 있는 입력 인수 조합을 지정할 수 있습니다.

예제

모두 축소

0과 1 사이의 균일하게 분포된 난수로 구성된 5×5 행렬을 생성합니다.

r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

구간 (-5,5)에 균일하게 분포된 난수로 구성된 10×1 열 벡터를 생성합니다.

r = -5 + (5+5)*rand(10,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

일반적으로 식 r = a + (b-a).*rand(N,1)을 사용하여 구간 (a,b)에 N개의 난수를 생성할 수 있습니다.

rand 대신 randi 함수를 사용하여 10에서 50 사이에 균일하게 분포된 5개의 정수형 난수를 생성합니다.

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

난수 생성기의 현재 상태를 저장하고 난수로 구성된 1×5 벡터를 생성합니다.

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

난수 생성기의 상태를 s로 복원한 다음, 난수로 구성된 1×5 벡터를 새로 생성합니다. 값은 이전과 동일합니다.

rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

난수로 구성된 3×2×3 배열을 만듭니다.

X = rand([3,2,3])
X = 
X(:,:,1) =

    0.8147    0.9134
    0.9058    0.6324
    0.1270    0.0975


X(:,:,2) =

    0.2785    0.9649
    0.5469    0.1576
    0.9575    0.9706


X(:,:,3) =

    0.9572    0.1419
    0.4854    0.4218
    0.8003    0.9157

단정밀도 요소를 갖는 난수로 구성된 1×4 벡터를 만듭니다.

r = rand(1,4,"single")
r = 1x4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'

기존 배열과 동일한 크기의, 균등분포된 난수로 구성된 행렬을 만듭니다.

A = [3 2; -2 1];
sz = size(A);
X = rand(sz)
X = 2×2

    0.8147    0.1270
    0.9058    0.9134

앞의 두 줄의 코드는 다음과 같이 한 줄로 표현하는 것이 보통입니다.

X = rand(size(A));

단정밀도 난수로 구성된 2×2 행렬을 만듭니다.

p = single([3 2; -2 1]);

p와 크기, 데이터형이 동일한, 난수로 구성된 배열을 만듭니다.

X = rand(size(p),"like",p)
X = 2x2 single matrix

    0.8147    0.1270
    0.9058    0.9134

class(X)
ans = 
'single'

구간 (0,1)에 실수부와 허수부가 있는 정사각형 영역에 대한 균등분포에서 복소수형 난수 10개를 생성합니다.

a = rand(10,1,"like",1i)
a = 10×1 complex

   0.8147 + 0.9058i
   0.1270 + 0.9134i
   0.6324 + 0.0975i
   0.2785 + 0.5469i
   0.9575 + 0.9649i
   0.1576 + 0.9706i
   0.9572 + 0.4854i
   0.8003 + 0.1419i
   0.4218 + 0.9157i
   0.7922 + 0.9595i

입력 인수

모두 축소

정사각 행렬의 크기로, 정수 값으로 지정됩니다.

  • n0이면 X는 빈 행렬이 됩니다.

  • n이 음수이면 0으로 처리됩니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

각 차원의 크기로, 정수 값으로 구성된 개별 인수로 지정됩니다.

  • 크기가 0인 차원이 있을 경우 X는 빈 배열이 됩니다.

  • 크기가 음수인 차원이 있을 경우 0으로 처리됩니다.

  • rand는 세 번째 차원부터는 크기가 1인 차원을 무시합니다. 예를 들어, rand(3,1,1,1)은 난수로 구성된 3×1 벡터를 생성합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

각 차원의 크기로, 정수 값으로 구성된 행 벡터로 지정됩니다. 이 벡터의 요소는 각각 해당하는 차원의 크기를 나타냅니다.

  • 크기가 0인 차원이 있을 경우 X는 빈 배열이 됩니다.

  • 크기가 음수인 차원이 있을 경우 0으로 처리됩니다.

  • rand는 세 번째 차원부터는 크기가 1인 차원을 무시합니다. 예를 들어, rand([3 1 1 1])은 난수로 구성된 3×1 벡터를 생성합니다.

예: sz = [2 3 4]는 2×3×4 배열을 생성합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

생성할 데이터형(클래스)으로, "double", "single", 또는 rand를 지원하는 다른 클래스의 이름으로 지정됩니다.

예: rand(5,"single")

생성할 배열의 프로토타입으로, 숫자형 배열로 지정됩니다.

예: rand(5,"like",p)

데이터형: single | double
복소수 지원 여부:

난수 스트림으로, RandStream 객체로 지정됩니다.

예: s = RandStream("dsfmt19937"); rand(s,[3 1])

  • rand가 생성하는 수열은 rand, randi, randn의 기반이 되는 균일 의사 난수 생성기의 내부 설정에 의해 결정됩니다. rng를 사용하여 이 공유 난수 생성기를 제어할 수 있습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

모두 확장