본문 바로가기
programming language/SCILAB

SCILAB histplot() 사용법

by 남성 2013. 1. 15.

아래 주소의 이전 포스팅에서도 소개한바 있지만 SCILAB 은 MATLAB 과 유사한 수치 시뮬레이션 툴입니다.

 

 

2012/08/20 - [유틸] - MATLAB 과 유사한 Open Source 프로그램 FreeMat



2011/03/11 - [MATLAB] - SCILAB



MATLAB 은 상용임에 반해 SCILAB 은 open source 라서 구매 비용이 필요가 없다는 게 굉장한 장점이죠.

 

Scilab 은 MATLAB 과 문법이 유사하긴 하지만 세세한 부분들은 많은 부분들이 다르더군요.

 

오늘은 MATLAB 의 hist() 함수와 유사한 histplot() 함수에 대해 설명 드리려 합니다.

 

MATLAB의 hist() 함수를 사용하면 histogram 을 그릴수도 있고, 출력 변수를 사용하면 그 값들을 변수에 저장 할 수도 있습니다.

 

Scilab 의 histplot() 함수는 출력 변수를 사용할 수는 없고 그냥 histogram 그래프만 그려줍니다.

 

하지만 기본적으로 normalization 적용하기 때문에 PDF(probability density function)을 그릴 때는 더 편리하기도 하더군요. PDF 또는 PMF 를 그리려면 면적이 1이 되도록 정규화를 하는 과정이 들어가야 하는데요~

 

아래 주소에서 MATLAB 을 사용하여 PDF 를 그려본 적이 있는데요~ 정규화 과정을 참조하시길 바랍니다.

 

2011/03/23 - [MATLAB] - MATLAB PDF, CDF, CCDF


2011/03/26 - [MATLAB] - MATLAB Exponential random variable generation


2011/05/05 - [MATLAB] - MATLAB central limit theorem simulation


2011/03/23 - [MATLAB] - Rayleigh random variable 생성


2010/01/03 - [MATLAB] - PDF (Probability Density Function)


 

Scilab 에서의 histplot () 함수 문법은 다음과 같습니다.

 

histplot(n, data, <opt_args>)

histplot(x, data, <opt_args>)

 

n 은 histogram 의 축의 개수를 설정할 때 사용하고 x 는 축을 벡터로 구분할 때 사용합니다.

 

그리고 opt_args 은 선 색이나 normalization 유무와 같은 옵션을 설정할 때 사용합니다.

 

간단하게 예를 들어보죠~

 

1,2,… 10 의 정수를 10칸에 걸쳐서 histogram 을 그리는 예제 입니다.

 

x=1:10

histplot(10,x)

 

 

그림을 보면 정규화를 했기 때문에 y 축의 최고값이 0.11 정도 된다는 것을 알 수 있습니다. 이는 1~10 을 n+1 개 칸 즉 11개 칸으로 축을 나눈 후 정규화를 해서 축 간 범위는 0.9 씩이 되고 y 축 값은 1/9 = 0.1111 이 되는 것 입니다.

 

다음으로 칸을 0.5:1:10.5 로 줘보죠.

 

figure

histplot(0.5:1:10.5,x)

 

 

간격을 1 씩 줬으므로 정규화 결과 y 축 값이 정확히 0.1이 됨을 확인 할 수 있습니다.

 

마지막으로 MATLAB 의 hist() 함수와 같이 정규화를 하지 않도록 해보죠. 아래 빨간색 친 부분과 같이 normalization 옵션을 %f (False) 로 주면~

 

figure

histplot(0.5:1:10.5,x, normalization=%f)

 

아래 그림처럼 정규화 하지 않은 histogram 이 구해집니다.


 


댓글0