이번 포스팅에서는 MATLAB 에서 기본으로 제공하는 각종 random number 의 생성 방법에 대해 알아본다.
MATLAB 에서도 rand() 함수는 uniform random number 를 발생 시킨다.
rand() 함수는 0에서 1 사이 값을 발생 시킨다. 이를 이용하여 다양한 범위의 uniform random number 를 발생 시킬 수 있다.
a ~ b 사이의 n행 k열 uniform random number 를 발생시키는 방법은 다음과 같다.
Uniform_rand = a + (b-a).*rand(n, k);
예를 들어 -10 ~ 5 사이의 4행 5 열 의 uniform random number 를 발생 시키려면 다음과 같이 하면 된다.
다음으로 정규 분포라 불리는 Gaussian random number 에 대해 알아보자.
Gaussian random number 를 발생시키는 함수는 randn() 이다.
randn() 함수는 평균이 0 이고 분산이 1 인 Gaussian random number 를 발생 시킨다.
평균이 a 이고 분산이 b 인 n행 k 열의 Gaussian random number 를 발생시키는 방법은 다음과 같다.
Gaussian_randn=randn(n, k)*sqrt(b)+a;
예를 들어 평균이 3 이고 분산이 9인 3행 4열 Gaussian random number 를 발생시켜 보면 다음과 같다.
다음으로 정수 random number 를 발생시켜주는 randi() 함수에 대해 알아보자.
randi(imax, n, m) 이라 정의 하게 되면 1,2,3,…imax 까지의 정수 중 uniform 하게 n 행 m 열 만큼 발생시켜 준다.
또는 randi([imin, imax], n, m) 이라 정의 하면 imin, imin+1, imin+2, … imax까지의 정수 중 uniform 하게 n 행 m 열 만큼 발생시켜 준다.
예를 들어 randi([-10, 2], 5, 4) 라고 정의 하면 -10,9,8… 2 까지의 정수를 5행 4열로 발생시켜 준다.
마지막으로 randperm() 함수에 대해 알아보자. randperm(k) 라 하게 되면 1:k 까지의 값들을 random 하게 나열 한다.
예를 들어 randperm(5) 하면 다음 그림과 같이 1,2,3,4,5 값을 random 하게 나열하는 식이다.
randperm(45) 의 값의 임의의 부분 6개를 취하면 간단하게 random한 로또 번호 생성기를 만들 수 있다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB global keyword (0) | 2011.03.26 |
---|---|
MATLAB Tex character 수학 기호 넣기 (0) | 2011.03.25 |
MATLAB Rayleigh random variable 생성 (2) | 2011.03.23 |
MATLAB FAST convolution using FFT (0) | 2011.03.23 |
MATLAB PDF, CDF, CCDF (6) | 2011.03.23 |
MATLAB 함수 만들기, inline, function handle (0) | 2011.03.21 |
MATLAB cross product, 삼각형의 면적, 평행 육면체의 부피 (0) | 2011.03.21 |
MATLAB input() (0) | 2011.03.21 |
댓글