본문 바로가기

programming language/MATLAB215

MATLAB figure ButtonDownFcn 오늘은 MATLAB figure 창을 클릭 했을 때 특정 동작을 하도록 하는 Button down callback function 에 대해 설명 드립니다. 아래 예제 코드를 보면서 설명 드리겠습니다. buttondownfnc_test.m file x=1:10; y=x*2; h=figure; % 그림 창의 handle , h h_plot=plot(x,y,'r:.'); % 그래프의 handle , h_plot grid on ; % 그림 창의 button down function 을 {@grid_ONOFF2, h_plot} 로 설정 set(h,'ButtonDownFcn',{@grid_ONOFF2, h_plot}) 위 예제 코드는 단순하게 y=2x 의 직선을 그리고 그림 창을 누르면 선이 없어지거나 다시 생기게.. 2012. 2. 22.
Simulink Algebraic Loop Simulink 를 사용하면서 종종 Algebraic Loop Error를 만나게 되는데요. 오늘은 이 Algebraic Loop에 대해 알아보려고 합니다. Algebraic Loop 에 대해 이해하기 위해서는 Simulink 의 Direct feedthrough 에 대한 이해가 선행 되어야 합니다. Direct feedthrough 란 어떤 블록의 출력이 결정되는데 현재의 입력이 영향을 미치는 것을 의미합니다. 예를 들면 Add, Gain 과 같은 블록은 현재의 입력이 있어야 출력을 알 수가 있을 테니깐 이런 블록들이 바로 direct feedthrough 한 블록들인 것입니다. Algebraic Loop 란 이런 direct feedthrough 한 블록의 출력이 입력에 연결 되었을 때 발생을 합니다.. 2012. 2. 13.
MATLAB dos 명령 사용하기 MATLAB 에서 여러 개의 텍스트 파일이나 data 파일 등을 열 때 dir 명령어를 이용하여 파일 목록을 가져올 수 있습니다. 파일 목록을 가져 온 후에 for 문 등을 이용하여 일괄적으로 파일을 열어서 데이터를 가져 오는 것이 가능 합니다. 하지만 MATLAB 의 dir 명령은 recursive 하게 동작하는 옵션은 없습니다. 이러한 경우에는 MATLAB 에서 운영체제의 명령어를 이용하여 처리하는 것이 좋습니다. 윈도우 운영체제에서 도스 명령어를 이용할 경우에는 dos command 와 같은 형태로 이용합니다. 또는 [status, result] = dos('command') 와 같이 이용하여 dos 명령 실행 결과를 MATLAB 으로 가져 올 수도 있습니다. 이제 현재 폴더에서 모든 txt 파일을.. 2011. 12. 21.
MATLAB convolution 요즘 부쩍 MATLAB for 문을 이용한 convolution 에 대한 질문이 많이 들어오는군요. 그래서 오늘은 MATLAB for loop 를 이용한 convolution 에 대해 설명 드리려 합니다. 다들 아시는 바와 같이 MATLAB 에는 기본적으로 convolution 을 수행하는 함수인 conv() 라는 함수가 존재 합니다. c=conv(a, b) 와 같은 형태로 쓰이곤 합니다. 당연히 a 와 b 의 convolution결과를 c 에 리턴 하는 함수이죠 convolution 이라는 것이 결국에는 FIR filter 와 같다고 보셔도 무방 합니다. 다만 그 return 되는 값의 길이에 있어서 차이가 있죠. 이는 filter 의 shift register 를 다시 0으로 채워주는 과정이 추가가 .. 2011. 11. 20.
Window command 에서 MATLAB 실행 방법 오늘은 window command 라인 상에서의 MATLAB 실행 방법에 대해 소개하려 합니다. 보통의 MATLAB 의 실행은 아이콘을 더블 클릭해서 실행하곤 하는데 ~ 이 경우에는 MATLAB desktop 이 실행되다 보니 로딩이 좀 늦고 무거운 감이 있습니다. 물론 컴퓨터 성능에 따라 정도의 차이는 있지만요~ 간단하게 계산기 용도로 쓸 때나 미리 작성한 script 등을 실행시키고 이의 결과를 얻으려고 할 때 등은 굳이 무거운 MATLAB desktop 을 실행 시킬 필요는 없습니다. 마치 window batch 파일을 실행 시키는 것처럼 MATLAB을 실행시키는 방법에 대해 알아보죠~ 아래의 링크 페이지를 참조 하면 window command 라인에서의 MATLAB 실행 명령어 들에 대해 알 수 .. 2011. 11. 20.
MATLAB, end 를 이용한 데이터 추가 MATLAB 의 end 키워드는 보통 벡터 또는 매트릭스 등의 마지막 인덱스를 의미하는데 이용 되곤 합니다. 다음 예는 일반적인 사용에 대한 예입니다. end 키워드를 이용하여 x 의 마지막 인덱스를 참조 하곤 하죠. 이렇게 참조 하는 것 이외에도 end 를 이용하여 벡터 또는 매트릭스에 데이터를 추가 할 수도 있습니다. 위의 x 라는 벡터의 끝에 11~20을 추가 해 보겠습니다. 일반적으로 다음과 같이 벡터를 붙여서 추가를 하곤 합니다. 또 다른 방식으로는 end 를 이용하여 다음과 같이도 추가 할 수 있습니다. x 라는 벡터의 끝에서부터 +1 번째 인덱스부터 +10 번째 인덱스에 11~20을 넣으라는 뜻으로 해석할 수 있습니다. 2011. 11. 18.
MATLAB 집합 관련 함수들 오늘은 MATLAB의 집합 관련 함수들에 대해 알아보겠습니다. 다음과 같은 벡터 A,B 에 대하여 교집합은 intersect()라는 함수를 이용합니다. 합집합은 union() 함수를 이용합니다. 차집합은 setdiff() 함수를 이용합니다. 위 결과에서 A-B 를 하므로 교집합 [1 2] 를 제외하고 [3 4 5 6] 이 출력되게 됩니다. 벡터 내의 유일한 원소에 대해 찾고 싶을 때는 unique() 함수를 이용합니다. 위 예에서 1, 2, 3 은 중복이 되 있으므로, 한번씩만 나타내게 되는 겁니다. 2011. 6. 13.
MATLAB plot tools 아래 포스팅에서 MATLAB의 graphic handle 에 대해 간단하게 설명 드렸는데요. 2011/05/25 - [MATLAB] - MATLAB Graphic handle 오늘은 GUI 로 각 property 들을 바꾸는 방법과 그래프 설정을 함수화 해서 재 사용하는 방법에 대해 알아보겠습니다. 일단 다음과 같은 코드로 그래프를 하나 띄우죠. x=1:10; y=1:10; plot(x,y); 위 코드를 실행해서 나온 아래 그림과 같은 그래프에서 빨간색 네모 칸 부분을 클릭 합니다. 그럼 창이 최대화 되면서 그림 창이 아래 그림과 같이 바뀌게 됩니다. 회색인 바탕 화면을 하얀색으로 만들고 싶으면 Figure Color 부분을 선택해서 원하는 색상으로 변경 하시면 됩니다. 그럼 다음과 같이 변하게 되죠. .. 2011. 5. 26.
MATLAB Graphic handle MATLAB 그래프를 좀 더 효율적으로 또는 다양하게 변화 시키고 싶다면, graphic handle 에 대해 아셔야 합니다. 일단 다음과 같은 y = x 그래프를 하나 그려보죠. x=1:10; y=1:10; h_graphic=plot(x,y); 다음과 같은 그래프가 나오죠. 위 코드의 h_graphic 이 바로 이 그래프 선의 handle 입니다. h_graphic 에는 그래프에 대한 다양한 property 들이 들어 있고 현재의 설정 상태를 확인 할 때는 get(h_graphic) 명령어를 통해 확인 할 수 있습니다. command 창에 다음과 같이 설정 상태가 나옵니다. 그럼 간단하게 set() 명령어를 이용하여 YData 를 다음 코드처럼 변경해 보죠. set(h_graphic, 'Ydata',[.. 2011. 5. 25.
MATLAB adaptive filtering, Least Mean Square(LMS) 오늘은 적응형 알고리즘 중에서 가장 간단하면서도 많이 사용되는 Least Mean Square(LMS) 알고리즘에 대해 설명 드리겠습니다. 적응형 알고리즘은 임의의 모르는 시스템에 대한 identification이나 inverse response 를 구해서 채널 추정을 한다거나 할 때 주로 이용되며, 그 적용의 예는 무궁무진 하다고 합니다. 그 중에서도 LMS 알고리즘은 1960 년대에 만들어진 알고리즘임에도 불구하고 구현이 간단하고, 성능 또한 복잡도 대비 우수하여 많이 이용되고 있습니다. 계수 조절이 가능한 탭수 N 의 FIR 필터가 있는 경우 이 필터의 출력 신호 y(n)은 다음과 같이 정의 됩니다. FIR 필터와 비교할 원하는 신호를 d(n) 이라 할 때 그 오차를 다음과 같이 계산할 수 있죠. .. 2011. 5. 23.
MATLAB Dependency Report MATLAB 을 이용하여 다음과 같은 간단한 m 파일을 작성해 보겠습니다. 위 Editor 의 왼쪽 창은 test_file.m 파일이며 오른쪽에 있는 파일은 test_file.m 파일에서 이용한 MySin.m 함수 파일 입니다. 위 test_file.m 파일을 다른 사람에서 전달 한다면 당연히 test_file.m 파일과 MySin.m 함수 파일을 같이 전달해야 합니다. 위 예와 같이 함수가 하나인 경우에는 MySin.m 함수 파일을 빼 놓고 전달하는 경우가 없겠지만, 여러 사람이 같이 작업을 한다거나 또는 자신만의 library 를 작성하여 path 를 추가하여 이용하는 경우에는 주요한 함수들을 빼 놓고 전달해서 m 파일이 제대로 실행이 안 되는 경우가 종종 있습니다. 이런 경우에 Dependency .. 2011. 5. 21.
MATLAB ordinary differential equations 를 풀어보자~ dsolve() MATLAB Symbolic math toolbox 를 이용하면 공대생이라면 흔히 접하게 되는 상미분방정식(ordinary differential equations) 문제들을 굉장히 쉽게 풀 수 있습니다. dsolve() 명령어를 이용하여 아래 ordinary differential equations 문제를 풀어 보도록 하죠. dsolve() 함수를 이용하여 ordinary differential equation 을 풀 때 1차 미분은 D 로 표현을 합니다. 2차 미분은 D2로 표현을 하고 3차는 D3 로 표현을 하죠~ 위 식에 대해 MATLAB 의 dsolve() 함수를 이용하여 풀 때는 다음과 같이 합니다. S=dsolve('Dy+6*y=3*exp(-t)', 'y(0)=0') 그럼 다음과 같은 해가 .. 2011. 5. 15.
MATLAB 연립 방정식 해 구하기, least square solution MATLAB 을 이용하여 다음과 같은 연립 방정식의 해를 구해 보죠. 위 식은 다음과 같이 matrix 의 형태로 나타낼 수 있습니다. MATLAB 에서 연립방정식의 해를 구할때는 보통 \(back slash) 연산을 이용합니다. A=[9 7 4; 5 16 8; 56 -2 21]; % A 값 정의 Y=[12 ; -23 ; 17]; % Y 값 정의 X=A\Y % x, y, z 의 해를 구함 위 식의 해는 다음과 같습니다. X = 3.9347 2.0756 -9.4853 물론 다음과 같이 inv() 함수를 이용하여 구할 수도 있죠. X_inverse=inv(A)*Y % inverse 함수를 이용하여 해를 구함 X_inverse = 3.9347 2.0756 -9.4853 위 문제와 같이 A matrix 가 정방.. 2011. 5. 8.
MATLAB Poisson (포아송) r.v. generation 오늘 포스팅에서는 MATLAB 을 이용하여 Poisson r.v. 을 생성하고 이의 pmf 및 cdf, 평균 분산 등의 특징을 알아보도록 하겠습니다. Poisson distribution은 특정 시간 동안의 이벤트 발생 확률 등을 나타내는데 주로 이용되는 r.v. 로서 다음과 같은 확률 질량 함수를 가지고 있습니다. cdf 는 다음과 같습니다. . 평균 및 분산 값은 λ 입니다. cdf 식을 알았으니 이제 uniorm r.v. 을 발생시켜서 Poisson r.v. 을 발생 시킬 수 있을 겁니다. λ = 4 일때의 poisson r.v. 을 생성하고 이에 대한 pmf 및 cdf 평균 및 분산을 구해 보도록 하겠습니다. 코드는 다음과 같습니다. command 창에 나온 평균 및 분산 결과는 다음과 같고 이론.. 2011. 5. 5.
MATLAB central limit theorem simulation 오늘의 포스팅에서는central limit theorem (중심 극한 정리)에 대한 MATLAB 시뮬레이션에 대해 설명 드립니다. 저 개인적으로는 중심 극한 정리에 대해 이해를 하면 왜 가우시안 분포를 정규분포라고도 하는지 이해를 하게 된 것 같습니다. 중심 극한 정리란 어떤 임의의 확률 변수의 합의 횟수가 무한대가 될 때 그 분포가 정규 분포에 가까워진다는 것입니다. 위 식을 보면서 좀더 쉽게 설명 드리자면 위 식의 Xi 라는 변수가 어떤 분포를 갖는 변수던지 간에 N 값이 무한대가 되도록 더하면 SN 이라는 확률 변수의 분포가 정규 분포가 된다는 겁니다. 특정 r.v. 의 합에 대한 평균 및 분산은 다음 수식과 같은 특징이 있습니다. 평균이 μ 이고 분산이 σ2인 정규 분포의 pdf 는 다음과 같습니.. 2011. 5. 5.
MATLAB symbolic math toolbox 를 이용한 합성 함수, 역함수 MATLAB 의 symbolic math toolbox를 이용하면 합성 함수나 역함수 등을 매우 쉽게 구할 수 있습니다. 합성 함수를 구해주는 함수로는 compose()라는 함수가 있습니다. 다음 식에 대해 간단히 합성 함수를 구해 보죠. , 위 식에 대한 합성 함수f(g(x)) 는 다음과 같습니다. syms x f= x^2+2*x+3; % f(x) g= sin(x); % g(x) fg=compose(f,g) % f(g(x)) ezplot(fg), grid on % f(g(x)) 그래프 결과는 다음과 같습니다. fg = sin(x)^2 + 2*sin(x) + 3 다음으로 역함수를 구해주는 함수인 finverse() 함수에 대해 알아보죠. 위 식에 대한 역 함수를 구하려면 다음과 같이 코딩 하시면 됩니다... 2011. 4. 29.
MATLAB function handle 추가 오늘의 포스팅에서는 function handle 사용법의 추가 적인 내용들에 대하여 정리하겠습니다. 여러 함수에 대해 똑 같은 값을 적용할 때에는 function handle 을 struct class 나 cell class 의 형태로 만들어서 이용할 수가 있습니다. 다음 수식에 대하여 struct 의 형태로 function handle 을 구성하고 그에 따른 값을 알아보죠. 다음과 같이 struct 의 형태로 표현 할 수 있고, x=-1:0.5:1 에 대한 각 수식의 값을 한번에 구할 수가 있습니다. struct 에 한번에 똑 같은 값 또는 함수 등을 적용 할 때는 structfun() 함수를 이용 합니다. 위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. ans = f: [1 0.2500 0.. 2011. 4. 25.
MATLAB ordinary differential equation , ode45 MATLAB 에서 미분 방정식에 대한 해를 구하는 여러 방법 중 수치적인 해를 구할 때 주로 ode23(), ode45() 와 같은 함수를 이용한다. ode 는 ordinary differential equation 의 약자이다. 뒤에 붙은 23이나 45 같은 숫자는 Runge-Kutta formulas 의 차수를 말한다. ode23 은 2차 3차 Runge-Kutta 방식을 이용하는 것이고, ode45 은 4차 5차 Runge-Kutta 방식을 이용하는 것이다. 문제의 유형에 따라 몇 차의 Runge-Kutta 방식을 이용해야 할지 결정 해야 한다. 문제의 유형이 stiff, nonstiff 인지 그리고 해의 정확도 가 High 인지 Low 인지에 따라 solver 의 선택을 달리 해야 한다. 언제 어.. 2011. 4. 24.
MATLAB nargin, nargout MATLAB 의 함수는 종종 입력과 출력 argument 의 수가 가변적인 경우가 많습니다. x=magic(3) 위에서 선언한 변수 x 에 대하여 다음과 같이 max() 함수를 이용할 수 있습니다. s=max(x) s1=max(x, 3) [s2 n]=max(x) 위 코드를 보면 max() 함수를 이용하는데 x 라는 입력 하나만 줄 수도 있고, x,3 이라는 두 가지 입력을 줄 수도 있고, [s2 n]이라는 2개의 인자가 출력이 되게 할 수도 있습니다. MATLAB 에서 함수의 가변적인 입출력을 가능하게 하는 keyword 가 nargin, nargout 입니다. nargin 은 함수에 입력되는 인자의 수를 말하며, nargout은 함수의 출력의 수를 말 합니다. 그럼 예를 들어 설명해 보도록 하죠. 다음.. 2011. 4. 24.
MATLAB laplace, inverse laplace transform 오늘의 포스팅에서는 선형 시스템 해석에 주로 사용되는 Laplace transform 에 대해 알아 보겠습니다. 임의의 함수 f(x)에 대한 Laplace transform 의 정의는 다음과 같습니다. 그리고 inverse Laplace transform 은 다음과 같죠. MATLAB symbolic math toolbox 를 이용하면 위 식과 같은 Laplace transform 또는 inverse Laplace transform 을 매우 쉽게 할 수 있습니다. Laplace transform 은 laplace() 라는 함수를 이용하고, inverse Laplace transform 은 ilaplace() 라는 함수를 이용합니다. 간단하게 몇 가지 예를 들어 보죠. 가장 기본적인 위 식에 대해 Lapl.. 2011. 4. 24.
MATLAB 변수를 저장 하자~ mat file MATLAB 을 사용하다 보면 특정 변수를 파일로 저장하고 싶은 경우가 있습니다. 다음과 같은 경우를 보죠. 이라는 함수 f 를 function handle 로 정의 하고 x=1:10 에 따른 y 값을 구했습니다. 위 함수 f 와 , y 값을 파일로 저장해서 나중에 다시 사용하고 싶다면 다음과 같이 save 명령어를 이용하여 mat 파일로 저장 하시면 됩니다. 확인을 위해 clear 명령을 통해 workspace 에서 변수를 지운 다음에 load fy.mat 이라는 명령어를 통해 파일을 읽어 들이면 f, y 라는 변수가 그대로 workspace 에 load 되는 것을 확인 할 수 있습니다. 2011. 4. 21.
MATLAB NaN MATLAB 의 NaN키워드는 Not-a-Number 의 약자입니다. 즉 숫자가 아니라는 뜻입니다. 0/0 이나 ∞/∞ 와 같은 경우 NaN 이 출력 되게 되는데, 보통은 쓸모가 없다라고 생각하곤 합니다. 하지만 이런 NaN 키워드는 그래프를 그릴 때 매우 유용하게 사용할 수 있습니다. 그래프에서 특정 부분을 그래프에 나타내고 싶지 않을 때는 NaN 을 이용해서 표현을 하면 됩니다. 다음과 같은 경우를 보죠. x=1:10; y=x*2; figure, plot(x,y), grid on y2=y; y2(y>10)=nan; % y 의 값중 10 보다 큰 값들은 nan 으로 설정 figure, plot(x,y2), grid on 위 코드는 y 의 값 중에서 10 보다 큰 값들은 NaN 을 이용하여 그래프에서 제.. 2011. 4. 20.
MATLAB 파일 출력 MATLAB 에서 txt 파일을 출력하는 경우 다음 과정에 따라 처리 한다. fopen() 함수를 이용하여 파일을 쓰기 모드('w')로 연다. fprintf() 함수를 이용하여 파일에 내용을 쓴다. fclose() 를 이용하여 file handle 을 닫아 준다. 다음과 같은 데이터를 이용하여 위 과정 대로 test_file.txt 파일에 저장해 보자. 저장하는 과정은 다음 코드와 같다. 저장된 파일 test_file.txt 을 열어서 확인해 보면 다음과 같다. 7 8 3 7 7 1 1 5 위 결과를 보면 정상적으로 저장이 안 된 것을 확인 할 수 있다. 이는 fprintf 함수에서 %d %d 를 써서 10진수 숫자를 저장할 때 각 열 벡터 별로 즉 MATLAB 이 일반적으로 처리하는 행 순서대로 저장하.. 2011. 4. 19.
MATLAB 파일 읽기 importdata() 오늘의 포스팅에서는 importdata() 함수를 이용하여 파일을 읽는 방법에 대해 알아보겠습니다. data.txt 파일이 다음과 같이 구성되어 있을 때 x123456 y24681012 아래 그림처럼 데이터를 load 할 수가 있습니다. 위 코드를 보면 importdata() 함수의 결과는 struct class 형태로 구성되는 것을 알 수 있고 알아서 수치 데이터는 수치 데이터끼리 문자로 된 header는 header 끼리 필드를 구분해서 저장 하는 것을 확인 할 수 있습니다. 2011. 4. 18.
MATLAB binomial r.v. generation 지난 포스팅에서 bernoulli r.v. generation 에 대해 설명 드린 바 있습니다. 2011/04/06 - [MATLAB] - MATLAB Bernoulli random variable generation 오늘은 그 연장선상으로 binomial r.v. generation에 대해 설명 드리겠습니다. binomial distribution은 이항 분포라고 하는데, 한번의 시행에서의 성공 확률이 p 인 경우 n 번의 시행에서 k 번 성공할 확률을 의미 합니다. 이렇게 말하니깐 잘 이해 못하시겠다면, 주사위의 예를 들면 이해 하기 편하실 것 같습니다. 주사위를 던져서 숫자 1이 나올 확률은 1/6 이죠. 10 번 던져서 k 번 만큼 숫자 1이 나올 확률이 이항 분포로 다음 식과 같이 표현 됩니다... 2011. 4. 17.
MATLAB cell class MATLAB 에는 약간 독특한 cell 이라는 class 가 존재 합니다. cell class 는 타입을 안 가리고 다 저장 하거든요. 숫자 문자를 가리지 않고 하나의 변수로 관리 할 수 있습니다. struct class 처럼 field 로 구분하는 것도 아닌 게 한 변수에 막 집어 넣으니깐 처음에는 참 신기하더군요. perl 을 접하신 분은 '당연한 거 아냐?' 하실 지도 ….. 아무튼 이 cell 타입이라는 게 나중에는 참 쓸모가 많아 지니깐, 알아 두시면 도움이 됩니다. 아!! 여담으로 MATLAB 에서 perl script 도 실행이 가능 합니다. MATLAB 에서 perl() 함수를 찾아 보시길~ 이런 것도 되? 하면서 좋아하실 분들도 있을 거라 생각 됩니다. 아닌가? ㅡㅡ; cell class.. 2011. 4. 11.
MATLAB taylor, Maclaurin serise taylor serise 는 특정 지점에서의 미분 값들의 무한 합을 통하여 함수를 표현 할 수 있다는 것이다. 정의는 다음과 같이 된다. 특정 지점 a=0 인 경우를 Maclaurin series 라고 한다. MATLAB 을 이용하여 이와 같은 taylor series expansion을 구할 때는 taylor() 함수를 이용한다. taylor() 함수는 symbolic math toolbox 가 있어야 쓸 수 있는 함수이다. 다음 함수 에 대한 taylor series expansion을 알아보자. 다음과 같이 위 함수를 정의 한다. syms x f=log(1+x) f = log(x + 1) f1=taylor(f) 라고 하면 5차의 Maclaurin series expansion 결과를 반환 한다. f.. 2011. 4. 10.
MATLAB 그래프에 값 넣기 추가, gtext() 이전 포스팅에서 text() 함수를 이용하여 원하는 좌표에 텍스트를 넣는 방법을 알아 봤습니다. 2011/04/09 - [MATLAB] - MATLAB 그래프에 값 넣기 오늘의 포스팅에서는 그래프의 좌표를 마우스로 클릭하면 값이 입력되는 gtext() 함수에 대해 알아 보겠습니다. 먼저 다음 명령어를 통해 그래프를 하나 띄워 보죠. x=1:10; plot(x,x,'r:.'), grid on 이제 다음 명령어를 통해 input 1 이라는 글자를 그래프에 넣어 보겠습니다. gtext('input 1') 위 명령어를 실행하고 그래프 위에 커서를 올리면 다음과 같이 십자선이 나타납니다. 원하는 위치에 클릭을 하면 아래 그림 처럼 글자가 입력이 됩니다. 다음으로 여러 글자를 한 지점에 입력해 보죠. 여러 글자를 .. 2011. 4. 9.
MATLAB 그래프에 값 넣기 MATLAB 이 굉장히 많은 장점 중 첫 번째가 그래프 기능이라고 생각된다. C/C++ 와 같은 언어를 이용해 계산을 하더라도 그 결과에 대해 그래프 출력을 하려면 참~ 어려움이 많다. MATLAB 은 단 몇 줄로 그래프 표현이 가능하다. 이번 포스팅에서는 이렇게 생성된 그래프에 값을 입력하는 방법에 대해 설명하려 한다. 일단 간단한 그래프를 하나 그려보자. x=1:10 x = 1 2 3 4 5 6 7 8 9 10 y=1:10 y = 1 2 3 4 5 6 7 8 9 10 figure, plot(x,y,'r:.'), grid on 위 그래프의 x=3, y=3 지점에 'x=3, y=3' 이라고 글자를 넣어 보자. 그래프에 글자를 넣는 함수는 text() 라는 함수가 있다. text(x,y,'string') .. 2011. 4. 9.
MATLAB symbolic math 수식으로 함수 만들기 matlabFunction() 오늘 포스팅에서는 symbolic math 를 통해 계산한 수식에 대해 함수를 만드는 방법에 대해 설명 드리겠습니다. 일단 다음과 같이 수식을 정의 해 보죠. syms a b x f=a*x^2+x + 8 f = a*x^2 + x + 8 위 수식에서 a 값을 2*b 값으로 치환을 해보겠습니다. 치환 할 때는 subs() 함수를 이용합니다. f1=subs(f, a, 2*b) f1 = 2*b*x^2 + x + 8 그럼 이제 위 f1 식을 함수로 정의해 보겠습니다. symbolic 식을 함수로 표현 할 때는 matlabFunction() 이라는 함수를 사용합니다. hf1 = matlabFunction(f1) hf1 = @(b,x)x+b.*x.^2.*2.0+8.0 위와 같이 matlabFunction() 함수를 .. 2011. 4. 9.