본문 바로가기

전체 글3358

MATLAB break, continue 이번 포스팅에서는 루프 문(for, while) 사용시의 제어를 위한 keyword 인 break 와 continue 에 대해 설명 드립니다. 보통 if 문 안에 써서 특정 조건 일 때 루프를 멈추게 하거나 또는 건너뛰게 할 때 이용합니다. break 는 루프 문의 동작을 멈추는 기능을 합니다. 다음 코드를 실행해 보면 for k=1:5 if k==3 break end fprintf('%d\n',k) end 1, 2 만 출력이 되고 k = 3 일 때 break 명령에 의해 for 루프를 빠져 나오게 됩니다. 루프 문 안에 또 루프 문이 있는 nested 루프의 형태에서 break 를 이용할 경우에는 break 를 둘러 싸고 있는 루프문 하나만 빠져 나오게 됩니다. continue 문은 특정 루프를 건너 .. 2011. 3. 26.
MATLAB piecewise 수식 표현 MATLAB 을 이용하여 그림과 같은 piecewise 식을 나타내 보자. 이러한 piecewise 식은 비교 연산자와 논리 연산자를 이용하면 매우 간단하게 표현이 가능하다. 위 그래프에 대한 식은 다음과 같다. 위 식을 y = my_piecewise(t) 라는 함수로 표현해 보자. 위 그림의 오른쪽의 빨간색 네모 칸 친 부분 처럼 각각의 조건을 비교 연산( 2011. 3. 26.
MATLAB global keyword MATLAB 의 함수 내부의 변수 값들은 함수가 사용된 이후에는 자동으로 메모리 상에서 없어진다. 하지만 같은 변수를 다른 함수 또는 파일에서도 이용하려는 경우 함수 내부에서 변화된 값이 계속 남아 있게 해야 하는 경우가 있다. 이러한 경우 global keyword 를 이용한다. global 은 하나의 변수를 여러 파일에서 이용하기 위해서 사용한다. global keyword 의 이용 방법은 변수 사용 전에 선언을 해 주고 사용해야 한다. 다음과 같이 예를 들어 보자. 위 예에서 global_test.m 파일에서 변수 a 값을 my_func() 함수에서도 이용하고 함수 내부에서 a 값을 변경했다. 그리고 global_test.m 파일에서 my_func() 사용 전과 사용 후의 a 값이 다음과 같이 달라.. 2011. 3. 26.
NexusFile 을 이용한 파일 이름 일괄 변경 이번 포스팅에서는 NexusFile 을 이용한 파일 이름 일괄 변경을 설명한다. NexusFile 다운로드 관련해서는 다음 포스팅을 참조하기 바란다. 2011/03/01 - [잡담,잡다] - NexusFile 텍스트 파일이나 음악 또는 영화 파일을 대량으로 받았을 때, 다음 그림처럼 파일 이름이 특정 패턴으로 써져 있는 경우가 굉장히 많다. 아래 텍스트 파일들은 맨 앞에 이라는 부분이 공통으로 들어있고 맨 뒤에 (숫자) 가 들어있다. 사본 이라 써져 있는 부분들은 지우고, 파일명 뒤쪽의 (숫자) 부분은 _숫자 형태로 넣어 보자. 다음 순서대로 따라 해 보면 쉽게 위 작업을 수행 할 수 있다. 먼저 텍스트 파일들을 다 선택하기 위해 임의의 텍스트 파일이 선택된 상태에서 numpad 쪽의 / 키를 누른다. .. 2011. 3. 26.
MATLAB Tex character 수학 기호 넣기 MATLAB 이용시 그래프 또는 command 창에 text 출력시 수학 기호등을 넣고 싶을 때가 있다. 다음 예는 sin 그래프를 그리고 x 축과 y 축에 θ 라는 특수 기호를 넣었다. MATLAB 에서 이런 특수 기호를 넣기 위해서는 위 코드에서 보는 것처럼 \character 형태로 입력해 줘야 한다. 아래 표를 참조하면 원하는 기호를 넣을 수 있을 것이다. Reference : MATLAB HELP 2011. 3. 25.
MATLAB Rayleigh random variable 생성 Gaussian r.v.(random variable)을 이용하여 rayleigh r.v. 을 생성하고 그 PDF 및 CDF 를 구해 보자. rayleigh random variable 에 대해서는 다음 포스팅을 참조 2009/12/26 - [수학] - Rayleigh PDF PDF 및 CDF 를 구하는 법에 대해서는 다음 포스팅을 참조 하시길 2011/03/23 - [MATLAB] - MATLAB PDF, CDF, CCDF 서로 독립인 평균이 0 이고 분산(σ2)이 1인 Gaussian r.v. X, Y 를 생성해 보자. rayleigh r.v. Z 는 다음과 같이 발생 시킬 수 있다. 이제 이전 포스팅 에서 설명한 대로 다음과 같이 PDF 를 구해 보자. CDF 는 다음과 같다. 분산이 σ2 인 가우.. 2011. 3. 23.
MATLAB FAST convolution using FFT 이번 포스팅에서는 FFT 를 이용한 고속 convolution 에 대해 알아본다. 일반적으로 conv(x, y) 은 filter() 함수로 구현되는 선형 convolution 이다. 선형 convolution 은 x 또는 y 의 길이가 증가할수록 그 복잡도는 급격히 증가하는 특징이 있다. 이러한 선형 convolution 은 순환(Circular) convolution 을 이용하여 구현이 가능하며, 순환 convolution 은 FFT(Fast Fourier Transform) 와 IFFT(Inverse Fast Fourier Transform)를 이용하여 구현이 가능하다. 일단 선형 convolution 을 순환 convolution 으로 변환하는 과정에 대해 살펴 보자. x=[1 2 3 4] y=[1.. 2011. 3. 23.
MATLAB random number 생성 이번 포스팅에서는 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 ra.. 2011. 3. 23.
MATLAB PDF, CDF, CCDF 이번 포스팅에서는 각종 랜덤 값들을 이용한 PDF(Probability Density Function), CDF(Cumulative Distribution Function), CCDF(Complementary Cumulative Distribution Function) 를 그리는 방법에 대해 살펴 보려 합니다. PDF 를 나타내는 방법에 대해 모르시는 분들은 다음 포스팅을 참조하시길 ~ 2010/01/03 - [programming language/MATLAB] - MATLAB PDF (Probability Density Function) 평균이 2 이고 분산이 10 인 가우시안 잡음을 생성해 보겠습니다. 평균이 2 이므로 +2 를 하고 분산 값이 10 이므로 sqrt(10) 을 곱해 주게 됩니다. 이제.. 2011. 3. 23.
MATLAB 함수 만들기, inline, function handle 어느 컴퓨터 언어나 반복되는 부분은 함수화 하기 마련 입니다. MATLAB 도 예외는 아니죠. 이번 포스팅에서는 MATLAB 에서 함수 작성 방법에 대해 알아보도록 하겠습니다. MATLAB 에서는 함수를 만들 수 있는 방법이 3 가지 정도 됩니다. 첫 번째로는 함수 파일을 만드는 방법이고, 두 번째로는 inline() 객체를 이용하여 함수화 하는 방법, 세 번째로는 function handle 을 이용하는 방법 입니다. 함수 파일을 만드는 방법부터 설명 드리도록 하겠습니다. 예를 들어 설명해 보죠. a, b 라는 두 값을 입력 받아서 그 합과 차를 출력하는 함수를 만들어 보도록 하죠. 함수는 function 이라는 키워드를 먼저 써줘야 합니다. 그리고 다음 그림과 같이 구성을 합니다. 함수 이름은 fun.. 2011. 3. 21.
MATLAB cross product, 삼각형의 면적, 평행 육면체의 부피 MATLAB 의 cross product함수로 cross() 라는 함수를 제공합니다. 본 함수는 cross(A,B) 형태로 이용을 하며 A,B 는 인자가 3개 여야 합니다. 그렇지 않으면 에러가 납니다. 보통 cross product(외적) 는 x 기호로 나타내고 dot product (내적) 은 점(∙) 기호로 나타냅니다. 일단 그 수학적인 정의에 대해 살펴 보겠습니다. 벡터 A= 이고 벡터 B = 인 경우 cross product 는 A x B 로 표현이 되고 dot product 는 A ∙ B 로 표현이 되며 그 결과는 다음과 같습니다. A x B= = A ∙ B= cross product 는 몇 가지 특징이 있습니다. A x B 는 A, B 에 직교 합니다. 즉 A,B 에 의해 이루어 지는 면적에.. 2011. 3. 21.
MATLAB input() 이번 포스팅에서는 input() 함수에 대해 설명해 보겠습니다. input() 함수는 말 그대로 사용자로부터 입력을 받는 함수 입니다. 사용 방법은 매우 간단합니다. >> A=input('입력해 주세요: ') ; 입력해 주세요: 12 >> A A = 12 다음과 같이 벡터도 입력 가능 합니다. >> A=input('입력해 주세요: ') ; 입력해 주세요: [1 2 3] >> A A = 1 2 3 그럼 다음과 같이 좀 엄한 값을 한번 넣어 보죠. >> A=input('입력해 주세요: ') ; 입력해 주세요: T ??? Error using ==> input Undefined function or variable 'T'. 입력해 주세요: 그럼 위 결과처럼 라는 부분이 다시 나오게 됩니다. 여기서 T 라는 값.. 2011. 3. 21.
MATLAB 기본3, sort, if ~ end, for ~ end, max, min MATLAB 은 공학적으로 굉장히 편리 한 툴입니다. 하지만 편리함 속에는 단점도 있는 게 사실 입니다. 쉽다고 함부로 쓰다가는 정말 예상치 못한 결과에 당황하는 경우가 있곤 합니다. 따라서 MATLAB 함수 등을 쓰실 때는 help 문 이나 예제 등을 통해 정확히 알고 난 이후에 이용하는 것이 좋습니다. 이번 포스팅에서는 그럼 기본 함수 몇 가지를 비롯한 몇몇 주의 할 점 들에 대해 설명 드리겠습니다. 첫 번째로 소개해 드릴 함 수는 sort() 함수 입니다. 함수 이름만 봐도 이게 정렬을 해주는 함수구나 하는 건 아실 겁니다. 예를 통해 설명해 보도록 하죠~ A=magic(3) A = 8 1 6 3 5 7 4 9 2 A 에 대해 sort() 함수를 적용해 보면 다음과 같습니다. A1=sort(A) A.. 2011. 3. 21.
로또 당첨번호 모음 [433 회] 433회 로또 당첨 결과 입니다. 432 회차 까지는 그냥 글자로 적었는데 생각해 보니깐 번호 오타라도 나면 안될 것 같아서 아래와 같이 캡쳐해서 올립니다. 당첨되신 분들 다들 축하 드려요~ 이번 433회는 1 등이 11명이나 당첨 됐네요. 433 회차 까지의 로또 당첨 번호 모음 첨부합니다. 보너스 번호를 포함하여 최근에 안 나온 수는 다음과 같습니다. 최근 20 회 동안 동안 안나온 번호: 32 36 41 최근 19 회 동안 동안 안나온 번호: 32 36 41 최근 18 회 동안 동안 안나온 번호: 32 36 41 최근 17 회 동안 동안 안나온 번호: 32 36 41 최근 16 회 동안 동안 안나온 번호: 20 32 36 41 최근 15 회 동안 동안 안나온 번호: 20 32 36 41 최근 14 .. 2011. 3. 19.
MATLAB erf, erfc, Q- function 통신에 대해 공부하다 보면 erfc(x) 함수나 Q(x), erf(x) 함수에 대한 내용들이 많이 나온다. 각 식들은 다음과 같다. 위 함수들은 각각 MATLAB 에서 erf(), erfc(), qfunc() 라는 명령어로 제공한다. erf(), erfc() 함수는 MATLAB 에서 기본적으로 제공하는 함수들이며 qfunc() 은 communication toolbox 에서 제공해주는 함수이다. 추가적으로 위 함수들과 관련하여 erfcinv() 라는 erfc 의 inverse 를 구해주는 함수와 qfuncinv 라는 qfunc() 의 inverse 를 제공해주는 함수도 있다. 2011. 3. 19.
MATLAB BPSK BER simulation in AWGN channel 오늘은 AWGN (Additive white gaussian noise) 채널 환경에서의 BPSK Bits Error Rate(BER)에 대해 설명한다. 일단 BPSK 가 뭔지 잘 모르는 사람은 다음 페이지를 참조 하기 바란다. 2011/03/08 - [통신] - [디지털 통신] BPSK, QPSK 위 페이지를 참조하면 bit 를 BPSK 심볼로 mapping 하는 방식에 대해 알았을 테고, 이제 잡음을 생성하는 방법을 알아 보자. 잡음을 생성하기 위해서는 몇 지 통신 관련 수식에 대해 알아야 한다. 보통 BER 그래프를 그릴 때는 SNR 축에 따른 그래프가 아닌 Eb/No 에 따른 그래프를 그리곤 한다. 따라서 BER 시뮬레이션을 정확히 하려면 Eb/No 에 따른 잡음을 생성할 수 있어야 하겠다. 잡음.. 2011. 3. 19.
MATLAB 반올림 관련 함수들 round, fix, ceil, floor 이번 포스팅에서는 MATLAB 의 rounding 관련 함수들에 대해 정리한다. 다음과 같은 벡터 값에 대해 위 함수들을 적용해 보고 그 특징을 알아본다. x=[-4.3 -1.8 0.7 3.6 1.2+2.6i ] x = -4.3000 -1.8000 0.7000 3.6000 1.2000 + 2.6000i ceil() : + 무한대 쪽으로 rounding 한다. ceil(x) ans = -4.0000 -1.0000 1.0000 4.0000 2.0000 + 3.0000i floor(): ceil 과는 반대로 - 무한대 쪽으로 rounding 한다. floor(x) ans = -5.0000 -2.0000 0 3.0000 1.0000 + 2.0000i fix(): 0 방향으로 rounding 한다. fix(x)a.. 2011. 3. 19.
MATLAB interpolation, interp1() 실험 데이터가 너무 적을 경우 그 경향성을 알아보기 위하여 실험 데이터의 중간 값들을 알아내야 하는 경우가 있다. 이런 경우 interpolation 을 수행하여 수학적으로 중간의 값들을 추정 하곤 한다. 이러한 수치적인 interpolation 을 해 주는 함수 중 하나가 interp1 함수 이다. 다음과 같은 데이터를 가정해 보자. X=0:10 X = 0 1 2 3 4 5 6 7 8 9 10 Y=sin(X) Y = 0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 0.6570 0.9894 0.4121 -0.5440 위 코드의 Y 값은 간단하게 0, 1, 2, … 10 값에 대한 sin() 값을 나타낸다. 위 값들을 이용하여 X 값이 0, 0.01, 0.02, 0.03.. 2011. 3. 19.
MATLAB 기본 2 MATLAB 에서 매트릭스의 인덱스에 대한 처리는 정말 기본 중에 기본이라 할 수 있다. 이번 포스팅에서는 매트릭스 인덱스 처리에 대해 설명한다. 1부터 10까지의 정수로 구성된 벡터 X를 발생시켜 보자. 콜론 연산자 이용 X=1:10 X = 1 2 3 4 5 6 7 8 9 10 linspace() 함수 이용 X=linspace(1,10,10) X = 1 2 3 4 5 6 7 8 9 10 무식하게 다 써주기 X=[1 2 3 4 5 6 7 8 9 10] X = 1 2 3 4 5 6 7 8 9 10 위 세가지 방법 모두 동일한 결과를 나타낸다. linspace(1, 10, 10) 함수의 첫 번째 1 은 시작 값 , 두 번째 10은 마지막값, 그리고 세번째 10 은 전체 개수를 의미 한다. 그럼 X 라는 벡터.. 2011. 3. 19.
MATLAB subplot() 오늘은 MATLAB subplot()에 대해 알아본다. subplot()은 하나의 figure 창에 여러 그래프를 표시 할 때 이용한다. 다음 예를 통해 subplot() 에 대해 설명한다. x=1:5; y=1:5; y2=(1:5)*2; figure, subplot(3, 2, 1), plot(x,y) subplot(3, 2, 4), plot(x,y2,'r:.') subplot(3, 2, 1) 에서 첫 번째 3은 그래프의 행의 개수를 의미하고, 두 번째 2는 그래프의 열의 개수를 의미한다. 세 번째 숫자 1은 위 그림에서 빨간색 글자로 표시한 1 부분에 그림을 넣겠다는 의미이다. subplot(3, 2, 4)는 에서 세 번째 숫자 4는 위 그림의 4번 부분에 그래프를 넣겠다는 의미이다. 그럼 위 그림을 다.. 2011. 3. 16.
MATLAB 입력 신호의 delay 확인 xcorr(), finddelay() 통신 또는 신호 처리에 있어서 delay 는 항상 존재 하기 마련이다. 필터링이나, 공기중의 매질을 통과하는 동안의 시간 지연RF 소자에 의한 지연 등.. 굉장히 다양한 지연 요소가 있다. 이런 delay 값을 확인 하기 위하여 수신신호와 기준 신호의 correlation을 이용하곤 한다. correlation 은 상관도로서 reference 값과 들어오는 값이 얼마나 잘 매치가 되는지를 알아 보는 척도이다. 이런 correlation 을 수행하는 함수로 xcorr() 함수가 있다. 본 함수는 Signal processing toolbox 내에 포함된 함수이다. x=1:5 x = 1 2 3 4 5 y=[0 0 0 1:5] y = 0 0 0 1 2 3 4 5 위의 x와 y 값을 비교 해 보면 y 가 x 에.. 2011. 3. 14.
MATLAB 벡터화 기법 MATLAB 의 연산은 기본적으로 매트릭스 연산을 기본으로 한다. 따라서 매트릭스 또는 벡터의 연산에 매우 편리하도록 구성이 되어 있다. 반면에 for 나 while 같은 루프 문의 경우에는 비교적 그 처리 속도가 느린 단점이 있다. 따라서 for 나 while 같은 루프 문은 가급적이면 안 쓰는 방향으로 코딩을 하는 것이 좋다. for 나 while 같은 루프 문을 매트릭스 또는 벡터 연산으로 처리 하는 것을 벡터화 기법이라 한다. 다음 수식에 대해 M 파일 코딩을 해 보자. 위 수식에 대해 for 문을 이용해서 코딩을 하고 tic, toc 을 이용하여 처리 시간을 측정 해보자. tic sum_v=0; % sum 초기값 설정 for n = 1:100 sum_v =sum_v + n^4; % 4 승 end.. 2011. 3. 14.
MATLAB 적분 추가 내용 trapz() 다음 페이지에서 2011/03/14 - [programming language/MATLAB] - MATLAB 적분 int(), quad() MATLAB 에서 이용 가능한 적분에 대해 학습을 한 적이 있다. 오늘은 추가적으로 수치 적분 함수 중 사다리꼴 기법으로 적분을 수행하는 trapz() 함수에 대해 설명한다. trapz() 함수의 원형은 다음과 같다. Z = trapz(X,Y) X 값은 함수의 입력이고 Y 값은 함수의 출력이다. trapz() 함수를 이용하여 다음 수식에 대한 적분을 수행해 보자. 일단 X 의 범위를 정한다. 적분 구간이 0~3 이므로 X=0:3 X = 0 1 2 3 Y= X.^2 + 2.*X + 1 Y = 1 4 9 16 integral_value=trapz(X,Y) integral.. 2011. 3. 14.
MATLAB 적분 int(), quad() MATLAB 을 이용하여 적분을 수행해 보자. MATLAB 을 이용하여 적분을 하는 방법은 크게 두 가지 정도로 구분 할 수 있을 것 같다. 첫 번째로는 수치적인 적분 방법이고 두 번째는 Symbolic math toolbox 를 이용한 수학적인 접근 방법이다. 수치적인 접근 방법이라 하면 사다리꼴 방법 과 같이 함수를 매우 작은 조각으로 나눠서 부분부분의 면적의 합을 구하는 방법이 될 것이다. 물론 이런 적분을 구하는 알고리즘을 짜서 적분을 할 수도 있겠지만 고맙게도 matlab 은 이런 함수를 제공 해 준다. quad() 함수를 이용하면 수치 적분이 가능하다. 본 함수는 수치 적분이므로 부정적분을 해 주지는 못한다. 따라서 다음 수식과 같이 구간이 정해진 식에 대해서만 적분 할 수 있다. 위 수식에 .. 2011. 3. 14.
MATLAB 함수의 해를 구해 보자~ fzero(), roots(), poly() MATLAB 에서 다항식 또는 연속 함수의 해를 구하는 방법에 대해 설명한다. fzero() 은 연속 함수의 한 지점에서의 해를 구하는 함수이다. 함수의 원형은 x = fzero(fun,x0) 이며 fun 이라는 함수에 대하여 x0 근처에서의 해를 찾아 준다. fzero() 함수는 y 값의 부호가 바뀌는 지점을 찾아서 해를 구하는 방식이다. 내부 알고리즘으로는 bisection, secant, inverse quadratic interpolation methods 이렇게 세 개 알고리즘이 조합된 방식을 이용한다고 한다. 해를 찾는 방식이 y 의 부호 변경 지점을 찾는 것이므로 y=x2 과 같이 x축에 접하는 함수에 대한 해를 찾을 때는 사용하지 않는 것이 좋다. Command 창에 다음과 같은 명령을 해.. 2011. 3. 13.
MATLAB ezplot() 함수로 그래프를 쉽게 그리자 오늘은 ezplot() 함수를 이용하여 그래프를 그리는 방법에 대해서 설명하겠습니다. ezplot() 함수는 함수에 대해 기본적으로 x 축의 범위가 -2π ~ 2π 범위에 대해 그래프를 그려 주는 함수 입니다. 물론 함수의 범위는 사용자가 설정할 수도 있습니다. 몇 가지 예를 통해 사용 방법을 설명 드리겠습니다. y=sin(x) + x2 + 2x+4 라는 함수에 대해 그래프를 그려 보겠습니다. 위 수식에 대한 그래프를 그리는 방법은 다음과 같습니다. matlab command 창에서 ezplot('sin(x) + x.^2 + 2.*x+4 ') 라고 타이핑 하면 다음과 같은 결과가 나옵니다. 다음 결과는 x 축의 범위가 위에 설명 드린 데로 -2π ~ 2π 범위의 값이 나왔습니다. 그럼 조금 다른 형태로 .. 2011. 3. 13.
로또 당첨 번호 모음 [432회] 이번주 로또 당첨 번호는 2 3 5 11 27 39 + 33 입니다. 1등 총 5 명의 당첨자가 탄생했네요~ 432회차까지의 로또 당첨번호 번호 모음 첨부합니다. 보너스 번호를 포함하여 최근에 안나온 수에 대한 통계는 다음과 같다. 최근 20 회 동안 동안 안나온 번호: 32 35 36 41 최근 19 회 동안 동안 안나온 번호: 32 35 36 41 최근 18 회 동안 동안 안나온 번호: 32 35 36 41 최근 17 회 동안 동안 안나온 번호: 32 35 36 41 최근 16 회 동안 동안 안나온 번호: 32 35 36 41 최근 15 회 동안 동안 안나온 번호: 20 32 35 36 41 최근 14 회 동안 동안 안나온 번호: 20 32 35 36 41 최근 13 회 동안 동안 안나온 번호: 13.. 2011. 3. 12.
MATLAB 다항식의 계수 추정 polyfit(), polyval() polyfit() 함수는 입력과 출력 값으로부터 다항식의 계수를 찾아 주는 함수 입니다. 예를 들면 라는 식에서 x, y 값을 알고 있으면 다항식의 계수값 a, b, c 값을 찾아 준다는 것입니다. polyfit() 함수의 원형은 다음과 같습니다. p = polyfit(x,y,n) x 는 다항식의 입력값, y 는 다항식의 결과값입니다. n 은 차수를 의미 합니다. p 는 차수에 따른 다항식의 계수 값을 의미 합니다. 다음과 같은 x, y 값에 대하여 다항식의 계수를 찾아보겠습니다. x=0:5 x = 0 1 2 3 4 5 y=2*x.^3 + 5*x.^2 + 6*x+4 y = 4 17 52 121 236 409 위와 같은 값이 있을 때 다음과 같이 3차 다항식의 계수를 찾습니다. 결과 p 의 값을 보면 위에.. 2011. 3. 12.
MATLAB 과 유사한 공학용 프로그램 SCILAB 오늘은 괜찮은 공학용 프로그램 하나 소개해 드리겠습니다. 바로 제목에 있는 SCILAB 이라는 프로그램인데요…… 이 프로그램이 뭐냐 하면 MATLAB 하고 굉장히 유사한 공학용 프로그램 입니다. MATLAB 은 뭐 툴 박스 하나만 해도 몇 백만원씩 하는 고가의 프로그램이라 학교나 회사 등에서 사주지 않는 이상은 개인들이 사기에는 부담스러운 프로그램입니다. 반면에 SCILAB은 완전 공짜의 프로그램 입니다. 공짜라고 해서 허접하거나 하지도 않군요. 익숙해 지기만 하면 MATLAB 대용으로도 써도 괜찮겠다는 생각이 듭니다. 프로그램은 http://www.scilab.org/ 에서 다운 받을 수 있습니다. 현재 5.3.1 버전까지 나와 있군요. 운영 체제는 Linux, Windows, MAC os X 지원하구.. 2011. 3. 11.
MATLAB 소스 코드 protection, pcode MATLAB 으로 M 파일 작성시 가끔 다른 사람들과 파일을 교환해야 하는 경우가 종종 있습니다. 이런 경우 회사 또는 개인의 보안상 파일의 소스는 숨겨서 보내야 할 경우가 있죠. C/C++ 같은 경우에는 라이브러리 파일처럼, MATLAB 에는 .p 라는 확장자를 갖는 파일을 만들 수가 있습니다. 이렇게 m 파일을 p 파일로 바꿔주는 함수가 바로 pcode 함수 입니다. pcode 함수의 사용 방법은 굉장히 간단 합니다. pcode abc.m 과 같은 형태로 써주면 abc.p 라는 pcode 가 만들어 집니다. 외부 또는 다른 사람에게 이 abc.p 파일을 넘겨주면 파일 소스는 볼 수 없지만 실행은 시킬 수가 있습니다. pcode *.m 이라고 써 주게 되면 현재 폴더 안의 모든 m 파일들을 다 p 파일.. 2011. 3. 11.