27
Matlab Programming Basics Matlab Programming Basics Matlab Programming Basics Matlab Programming Basics 프로그램 시작하기 프로그램 시작하기 프로그램 시작하기 프로그램 시작하기 1. MATLAB 1. MATLAB 1. MATLAB 1. MATLAB 의 기 명령어 의 기 명령어 의 기 명령어 의 기 명령어 2. MATLAB 2. MATLAB 2. MATLAB 2. MATLAB 행렬 및 터의 기 연산 행렬 및 터의 기 연산 행렬 및 터의 기 연산 행렬 및 터의 기 연산 3. 3. 3. 3. 기초 수학 함수들 기초 수학 함수들 기초 수학 함수들 기초 수학 함수들 4. 4. 4. 4. 동명대학교 정호호학과 이석환 교수 프로그래밍 기초 프로그래밍 기초 프로그래밍 기초 프로그래밍 기초 Matlab Matlab Matlab Matlab

Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Matlab Programming BasicsMatlab Programming BasicsMatlab Programming BasicsMatlab Programming Basics

프로그램 시작하기프로그램 시작하기프로그램 시작하기프로그램 시작하기1. MATLAB1. MATLAB1. MATLAB1. MATLAB

의 기본 명령어의 기본 명령어의 기본 명령어의 기본 명령어2. MATLAB2. MATLAB2. MATLAB2. MATLAB

행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산3.3.3.3.

기초 수학 함수들기초 수학 함수들기초 수학 함수들기초 수학 함수들4.4.4.4.

동명대학교 정보호호학과 이석환 교수

프로그래밍 기초프로그래밍 기초프로그래밍 기초프로그래밍 기초MatlabMatlabMatlabMatlab

Page 2: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

본 장에서는 기초 사용자를 위하여 간단한 사용 방법에 대하여 살펴보기로 한다 본 교재에서는MATLAB .

버전을 기반으로 하였으며 수치해석에 필요한 기본 명령어 위주로 설명하고자 한다MATLAB 6.0 , .

에 관한 자세한 내용을 원하는 분들은 사의 를MATLAB The MathWorks helpdesk

(http://www.mathworks.com 참고하길 바란다/access/helpdesk/help /helpdesk.html) .

1 프로그램 시작하기프로그램 시작하기프로그램 시작하기프로그램 시작하기MATLABMATLABMATLABMATLAB

먼저 소프트웨어 용 를 설치한 후에 바탕화면의 아이콘MATLAB 6.0 (Windows ) , MATLAB 또는 시[

작 모든 프로그램 에서 실행 파일을 실행하면 아래 그림에서와 같이 명령창]-[ ]-[MATLAB] , MATLAB

이 나타난다(Command Window) .

그림 명령창1-1. MATLAB

왼쪽 부분에서는 및 등이 나타나며 이들Launch Pad/Workspace Command History/Current History ,

은 메뉴바의 내에 선택되어진다 각 메뉴에 대한 자세한 내용은 사의 홈페이지를 참View . The Mathworks

고하기 바란다 오른쪽의 명령창은 사용자가 해석기 를 통하여 실행되어지는 것으로. MATLAB (Interpreter) ,

이 해석기는 사용자로부터 명령을 받아들일 준비가 되어 있다는 것을 알리기 위하여 프롬프트를 화면‘>>’

에 표시한다 이 때 사용자는 명령을 입력하여 실행시킬 수 있다 예를 들어. , MATLAB . ,

에서 일 때 의 값을 구하기 위하여

>> x=2; y=x^2+x+1

와 같이 명령창에 입력하면

y =

7

의 결과가 명령창에 나타난다 여기서 명령창에 입력하고자 하는 각 프로그램들의 명령어들을 각각 편집하. ,

기 위하여 또는 임의의 파일로 저장하기 위하여 의 를 실행한다[File] - [New] - [M-file] M-file Editor .

Page 3: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

에서 각 프로그램들을 작성한 후 이들을 명령창에 복사하여 실행한다 이 때M-file Editor , MATLAB . , M-file

에서 작성된 파일은 의 확장자를 가지는 파일로 저장된다Editor *.m .

그림 편집창1-2. M-file

본 교재에서는 각 장의 예제들을 풀이집에 근거하여 의 을 작성하였다 여기에 필요한 기MATLAB M-file .

본적인 명령어들은 본 장에서 설명하며 각각의 예제에 응용되는 명령어들은 을 통하여 설MATLAB , M-file

명하기로 한다.

Page 4: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

2 의 기본 명령어의 기본 명령어의 기본 명령어의 기본 명령어MATLABMATLABMATLABMATLAB

행렬의 사용법행렬의 사용법행렬의 사용법행렬의 사용법■■■■

에서 사용되는 연산 및 명령들은 행렬 형식으로 표현된다 즉 다른 프로그래밍 언어에서의 배열MATLAB . ,

형식과 유사하다 그러나 사용 가능한 크기까지 자동적으로 자동 공간을 할당해 주므로 다른 프로그래밍. ,

언어들과는 달리 차원 선언이나 형 선언이 없다.

예를 들어 임의의, × 행렬 에서 각 원소들의 입력 방법은

>> A=[1 2 3; 4 5 6; 7 8 9]

>> A=[1 2 3

4 5 6

7 8 9]

와 같다 즉. ,

임의의 행렬은 대괄호 로 시작과 끝을 표시한다[ ] .․각 행의 원소들은 빈 칸 키 또는 쉼표 를 사용하여 구분한다(space_bar ) (,) .․세미콜론 또는 키로 각 행의 끝을 표시한다(;) Enter .․

참고참고참고참고※※※※

명령문 끝의 세미콜론 은 키 또는 키 입력하였을 때 명령문을 실행하나 화면에 결과가(;) ENTER Return ,

출력되지 않는다 만약에 명령문 끝에 세미콜론이 없으면 이에 대한 결과가 화면에 출력된다. .

>> A=[1 2 3; 4 5 6; 7 8 9];

>> A=[1 2 3; 4 5 6; 7 8 9]

A=

1 2 3

4 5 6

7 8 9

큰 원소를 가지는 행렬일 경우 전자의 경우가 유용할 것이다.

특정한 개수의 값을 가지는 변수에 대한 함수값을 구하려고 한다면 위의 행렬 입력 방법이 유용하다 예, .

를 들어, 에서 일 때 각각의 를 구하고자 한다면

>> x=[1, -2, -3, 4];

>> y=1+abs(x)

Page 5: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

입력하여 결과를

y=

2 3 4 5

와 같이 확인한다 를 이용한 행렬 연산 방법은 장에서 자세히 살펴보기로 한다. MATLAB 2 .

의 산술문 및 변수의 산술문 및 변수의 산술문 및 변수의 산술문 및 변수MATLABMATLABMATLABMATLAB■■■■

에서 산술문은MATLAB

변수 수식>> =

또는

수식>>

와 같은 형태를 가진다 수식은 변수 연산자 특수 문자 함수 등으로 구성된다. , , , .

변수는 임의의 값 벡터 또는 행렬을 가지며 변수명 및 함수명은 영문자로 시작되는 자 이하의 문자, , 30

및 숫자를 사용하여 지정한다 여기서 밑줄 기호 를 제외한 특수 문자는 변수명 및 함수명에는 사용되지. ‘_’

않는다 그리고 대문자와 소문자를 구별하며 변수는 항상 소문자를 사용하여야 한다 예를 들어 는 임의. , . X

의 크기를 가지는 행렬을 나타내며 는 임의의 값 또는 벡터를 나타낸다 예를 들어 임의의 벡터 변수, x . , x

가 일 때[0, 1, 2, 3, 4, 5] , 를 구하려면

>> x=0:1:5; 시작값 증가 감소값 끝값%0 : , 1 : / , 5 :

>> y=1./(1+x.^2)

와 같이 작성한다 여기서 주의해야 할 점은 벡터 및 행렬 연산에서는 동일한 차원 를 가져야. (Dimension)

하며 연산 내에 벡터 및 행렬 변수에 를 사용한다 두 행렬 및 의 곱행렬 는, ‘.’ . A B C

>> A=[1 2 3; 4 5 6];

>> B=[2 4 6; 1 4 5];

>> C = A.*B

와 같이 작성하여 결과를 나타낸다.

에서는 주석 및 설명을 위한 문장을 위하여 을 사용한다 즉 로 시작되는 명령문은 실행MATLAB ‘%’ . , ‘%’

되지 않는다.

출력 형식출력 형식출력 형식출력 형식■■■■

Page 6: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

화면에 출력되는 결과값의 정밀도는 의 기본 설정에 따라 소수 자리까지의 배정도MATLAB 4 (Double

으로 정해져 있으며 이는 명령어에 따라 표현 정밀도를 바꿀 수 있다 이 명령어는 화Precision) , ‘format' .

면에 출력되는 값의 자릿수만 변경시킬 뿐이며 변수값 자체의 정밀도는 바뀌지 않는다, .

명령어로 바뀐 이후에 화면에 출력되는 모든 결과 값 들은 이의 정밀도로 표현된다'format' .

>> pi %Default

ans =

3.1416

>> format short; pi

ans =

3.1416

>> format short e; pi

ans =

3.1416e+000

>> format long; pi

ans =

3.14159265358979

>> format long; pi

ans =

3.141592653589793e+000

>> format rat; pi

ans =

355/113

Page 7: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

3 행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산행렬 및 벡터의 기본 연산

에서의 기본 자료형식은 행렬 및 벡터이다 따라서 에서는 다른 프로그래밍 언어와는 달MATLAB . MATLAB

리 연산시 행렬 및 벡터의 차원 에 주의하여야 한다, (Dimension) .

행렬 및 벡터의 산술 연산행렬 및 벡터의 산술 연산행렬 및 벡터의 산술 연산행렬 및 벡터의 산술 연산(Arithmetic Operation)(Arithmetic Operation)(Arithmetic Operation)(Arithmetic Operation)■■■■

산술 연산 행렬 벡터

덧셈 (addition) A+B A+B

뺄셈 (subtraction) A-B A-B

곱셈 (multiplication) A*B A.*B

오른쪽 나눗셈 (right division) A/B A./B

왼쪽 나눗셈 (left division) A\B A.\B

거듭제곱 (power) A^B A.^B

전치 (transpose) A' A.'

은 행렬 및 벡터에 대한 산술 연산자를 가지며 행렬 산술 연산자는 선형 대수MATLAB , (linear algebra)

법칙에 의하여 정의되고 배열 산술 연산자는 원소 대 원소로 실행된다 행렬 연산자로부터 배열 연산자를, - - .

구별하기 위하여 주기기호 가 쓰인다 그러나 행렬 및 배열 연산자는 합 차 에서는 동일하므로(.) . , (+), (-) .+

및 가 사용되지 않는다.- .

1) +, - : A+B, A-B

및 는 같은 크기를 가지거나 또는 중의 하나가 임의의 스칼라 이어야 한다A B , A B (Scalar) .

예를 들어 또는 이다, A+3 A-2 .

2) * (Matrix Multiplication) : C=A*B

행렬 및 의 선형 대수 곱이다 즉A B . ,

3) .* (Array Multiplication) : C=A.*B

배열 및 의 원소 대 원소 간의 곱이다A B - - .

즉,

4) / (Matrix Right Division) : C=A/B=(B'\A')' A*B-1≃

5) ./ (Array Right Division) : C=A./B,

배열 및 는 같은 크기를 가진다A B .

Page 8: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

6) \ (Matrix Left Division)

가 정방행렬 이면 와 동일하다- A (Square Matrix) , A\B=inv(A)*B .

가- A × 행렬이고 가, B 원소의 행 벡터 또는 여러 개의 행 벡터를 가지는 행렬이면,

는 가우시안 소거법에 의하여 계산된 방정식의 해이다X=A\B AX=B .

가- A × 행렬이고(≠ 가), B 원소의 행 벡터 또는 여러 개의 행 벡터를 가지는

행렬이면 는 의 방정식 에서 최소자승법에 의한 해, X=A\B under-/over-determined system AX=B

이다.

7) .\ (Arrary Left Division) : C=A.\B,

배열 및 는 같은 크기를 가진다A B .

8) ^ (Matrix Power) : X^p

가 임의의 스칼라이면 급수는 반복된 곱셈이다 음수이면 역급수- p , . ( )

의 다른 값에서는 고유치 및 고유벡터를 계산할 수 있다 즉 이면- p . , [V,D]=eig(X) ,

이다X^p=V*D.^p/V .

가 스칼라이고 가 행렬이면 는 고유치 및 고유벡터를 사용한 행렬 급수 로 를 제곱한 것- x P , x^P P x

이다.

및 가 모두 행렬인 는 오류이다- X P X^P .

9) .^ (Array Power) : C=A.^B,

배열 및 는 같은 크기를 가진다A B .

10) ' (Matrix Transpose) : A'

행렬 의 선형 대수적 전치 행렬이다 가 복소 행렬일 경우 는 복소 공액A . A , A' (Complex

전치 행렬이다Conjugate) .

11) .‘ (Array Transpose) : A.'

배열 의 전치 배열이다 가 복소 행렬일 경우 공액은 포함되지 않는다A . A , .

Page 9: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

예제 두 벡터[ 1.1] , 일 때 각각의 행렬 및 배열 연산자들의 결과는 다음과 같,

다 이 때 출력 형식은 이다. 'format rat' .

행렬 연산 배열 연산x 1 2 3 y 4 5 6

x'

1

2

3

y'

4

5

6

x+y 5 7 9 x-y -3 -3 -3

x+2 3 4 5 x-2 -1 0 1

x*y Error x.*y 4 10 18

x'*y 32 x'.*y Error

x*y'

4 5 6

8 10 12

12 15 18

x.*y' Error

x*2 2 4 6 x.*2 2 4 6

x\y 16/7 x.\y 4 5/2 2

2\x 1/2 1 3/2 2./x 2 1 2/3

x/y

0 0 1/6

0 0 1/3

0 0 1/2

x./y 1/4 2/5 1/2

x^y Error x.^y 1

x^2 Error x.^2 1 4 9

2^x Error 2.^x 2 4 8

(x+i*y)'

1-4i

2-5i

3-6i

(x+i*y).'

1+4i

2+5i

3+6i

행렬과 벡터의 조작법행렬과 벡터의 조작법행렬과 벡터의 조작법행렬과 벡터의 조작법■■■■

벡터의 생성벡터의 생성벡터의 생성벡터의 생성(1)(1)(1)(1)

형식 벡터변수 시작값 증가값 끝값- : = : :

증가값이 지정되지 않고 시작값 끝값 일 경우 증가값은 로 지정된다- ‘ : ’ , 1 .

는x=[1 2 3 4 5] >> x=1:5

는y=[0.0 0.5 1.0 1.5 2.0 2.5 3.0] >>y=0:0.5:3

Page 10: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

예제[ 1.2] x = [0 0.2 0.4 0.6 0.8 1.0]일 때, y= sin (x)×e - x의 값을 구하시오.

에서 씩 증가하여 까지의 모든0.0 0.2 1.0 x를 크기의 벡터로 생성하면 이다 즉1×n x=[0: 0.2: 1]' . ,

x=[0: 0.2: 1]' → x =

0.00.20.40.60.81.0

에 대한 는 에 의하여 구하여진다 여기서 가 벡터이므로 다음에 점 이 필요하x y sin(x).*exp(-x) . x sin(x) “.” ( )

다 그리고 결과값 또한. y

y=

0.00000.16270.26100.30990.32230.3096

벡터이다 이 두 행렬을 와 같이 결합하면. [x y]

[x y] →

0.0 0.00000.2 0.16270.4 0.26100.6 0.30990.8 0.32231.0 0.3096

와 같은 결과가 나타난다.

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> x=[0: 0.2: 1]';

>> y=sin(x).*exp(-x);

>> [x y]

ans =

0 0

0.2000 0.1627

0.4000 0.2610

0.6000 0.3099

0.8000 0.3223

1.0000 0.3096

Page 11: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

행렬 및 벡터 내의 첨자 기능행렬 및 벡터 내의 첨자 기능행렬 및 벡터 내의 첨자 기능행렬 및 벡터 내의 첨자 기능(2)(2)(2)(2)

행렬 벡터 및 다차원 배열들 내의 선택된 행 또는 열들을 표시하기 위하여 콜론 첨자가 이용된다 다, , (:) .

음은 행렬 의 원소 또는 일부 원소들을 표시하기 위한 방법들이다.

행렬 의 번째 열을 선택A(:,j) : A j

행렬 의 번째 행을 선택A(i,:) : A I

동등한 차원 배열A(:,:) : 2 A

A(j:k) : A(j), A(j+1),...,A(k)

A(:,j:k) : A(:,j), A(:,j+1),...,A(:,k)

차원 배열 의 번째 페이지A(:,:,k) : 3 A k

차원 배열 에서의 임의의 벡터 이 벡터는A(i,j,k,:) : 4 A , A(i,j,k,1),

등을 포함한다A(i,j,k,2), A(i,j,k,3), ... .

임의의 한 열로 구성된 의 모든 원소들A(:) : A

예를 들어 명령어는 첫 번째 페이지가 모두 을 가지는 차원 배열을 생성한다, << A(:,:,2) = pascal(3) 0 3 .

A(:,:,1) =

0 0 0

0 0 0

0 0 0

A(:,:,2) =

1 1 1

1 2 3

1 3 6

여기서 명령어는 번째 페이지의 번째 행인 을 나타낸다<<A(:,2,2)' 2 2 [1 2 3] .

기본적인 행렬 생성 함수들기본적인 행렬 생성 함수들기본적인 행렬 생성 함수들기본적인 행렬 생성 함수들(3)(3)(3)(3)

만으로 구성된 행렬zeros - 0․<< B=zeros(m,n) : × 크기의 행렬인0 B

만으로 구성된 행렬ones - 1․<< Y=ones(m,n) : × 크기의 행렬인1 Y

구간에 균등 분포된 난수rand - [0 1]․들의 행렬(Uniformly distributed random number)

<< Y=rand(m,n) : × 크기의 균등 분포 난수 행렬인 Y

평균 표준편차가 인 정규 분포된randn - 0, 1 (Normally distributed)․난수들의 행렬

Page 12: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

<< Y=randn(m,n) : × 크기의 정규 분포 난수 행렬인 Y

단위 행렬eye - (identity matrix)․등간격의 벡터linspace -․대수적 간격의 벡터logspace -․

각각의 함수들에 대한 자세한 사항은 를 참고하길 바란다MATLAB Help .

Page 13: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

4 기초 수학 함수들기초 수학 함수들기초 수학 함수들기초 수학 함수들

은 기초에서부터 고급 수준의 많은 수학적 함수를 가지고 있다 본 절에서는 에서 제공하MATLAB . MATLAB

는 간단한 기초 수준의 수학 함수들에 대해서만 살펴보기로 한다.

삼각함수삼각함수삼각함수삼각함수(Trigonometric Functions)(Trigonometric Functions)(Trigonometric Functions)(Trigonometric Functions)■■■■

함수의 정의역 및 범위는 복소치를 포함하며 모든 각의 값들은 라디안 으로 표현된다(Domain) , (Radian) .

삼각함수 내 용

sin(x) sine․cos(x) cosine․tan(x) tangent․

asin(x)

inverse sine․내의 에 대하여 는 내에 존재[-1,1] x asin(x) [-pi/2, pi/2]․이외의 에 대하여 는 복소치[-1,1] x asin(x)․

acos(x)

inverse cosine․내의 에 대하여 는 내에 존재[-1,1] x acos(x) [0, pi]․이외의 에 대하여 는 복소치[-1,1] x asin(x)․

atan2(y,x)사분면4 inverse tangent․의 실수부만 계산x, y․

sinh(x) ․

cosh(x) ․

tanh(x) ․

asinh(x) ․ acosh(x) ․

예제 다음 함수의 값을 각각 구하시오[ 1.3] .

1) sin(x), x = π/2

2) cos(x), x = π + π/4 i

3) sin(x), x = [ ]0 π/4 π/2 π

Page 14: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

는 라디안의 실수값이므로 다음과 같이 구한다1) x .

>> x=pi/2; sin(x) %x is real value in radian

ans=

1

는 라디안의 복소수이므로 다음과 같이 구하면 결과는 실수 허수 형태로 나타난다2) x , “ + ” .

>> x=pi+i*pi/4; cos(x) % x is complex value in radian

ans=

-1.3245 - 0.0000i

는 크기의 배열이므로 다음과 같이 구하면 결과 또한 동일한 크기의 배열로 나타난다3) x 1×4 , y .

>> x=[0 pi/4 pi/2 pi]; y=sin(x) %x is array, y has the same size of x

y=

0 0.7071 1.000 0.000

이외의 기초 함수들이외의 기초 함수들이외의 기초 함수들이외의 기초 함수들■■■■

수학함수 내 용

abs(x) ․ 가 복소치이면 복소 크기, x

angle(x) 복소치 의 위상 라디안x ( ) [-pi pi]․sqrt(x) ․ 가 음수 또는 복소치이면 는 복소치, x sqrt(x)

real(x) 복소치 의 실수부x․imag(x) 복소치 의 허수부x․conj(x) 의 복소 공액x․round(x) 에서 가장 가까운 정수x․floor(x) 와 같거나 작은 정수 중 에서 가장 가까운 정수x , x․ceil(x) 와 같거나 큰 정수 중 에서 가장 가까운 정수x , x․sign(x) x=1 if x>0, x=-1 if x<0, and x=0 if x=0․rem(x/y) 의 나머지x/y․exp(x) ․log(x) ․log10(x) ․

Page 15: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

예제 다음의 값을 각각 구하시오[ 1.4] .

1)

2) ∠

3) x = 1.9일 때, x의 가장 가까운 정수, x와 같거나 작은 정수 또는 작은 큰 수 중 가장 가까운 정

4) log e(10), log 10(10)

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> abs(-3+4i) %

= 5

>> angle(1-i) % ∠

= -0.7854

>> round(1.9), floor(1.9), ceil(1.9)

= 2 1 2

>> log(10), log10(10)

= 2.3026 1

간단한 함수들간단한 함수들간단한 함수들간단한 함수들■■■■

배열 내 원소를 오름차순으로 정렬sort :․는 행 벡터 열 벡터 또는 행렬이 될 수 있다- B = sort(A) : A , .

스칼라 에 의해 결정된 의 크기에 따라 원소들을 정렬- B = sort(A,dim) : dim A

벡터 지수 의 배열 는 의 배열- [B,INDEX] = sort(A,...) : (index) . INDEX size(A)

배열 내 원소들의 합sum(x) : x․배열 내 최대값max(x) : x․배열 내 최대값min(x) : x․배열의 차원size(x) : (dimensions)․벡터의 길이 공집합이 아닌 배열에서는 와 같음length(x) : , max(size(x))․

이외의 많은 수학 함수들은 를 참고하길 바란다MATLAB Help .

Page 16: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

관계 연산자 및 논리 연산자관계 연산자 및 논리 연산자관계 연산자 및 논리 연산자관계 연산자 및 논리 연산자■■■■

관계 연산자관계 연산자관계 연산자관계 연산자(1)(1)(1)(1)

동일한 차원의 두 입력에 대하여 아래 표의 관계 연산자를 수행한다 결과 값은 관계 연산의 조건이 참일.

경우에는 을 거짓을 경우에는 으로 나타낸다1 , 0 .

관계 연산자 내 용

A<B 가 보다 작으면 참 아니면 거짓A B (1). (0)

A<=B 가 보다 같거나 작으면 참 아니면 거짓A B (1), (0)

A>B 가 보다 크면 참 아니면 거짓A B (1). (0)

>= 가 보다 같거나 크면 참 아니면 거짓A B (1), (0)

== 가 와 같으면 참A B (1)

~= 가 와 다르면 참A B (1)

예제 행렬 및 이 각각[ 1.5] A B A = [ 1 2 3 4 5] , B = [ 3 2 1 3 2]일 때 관계연산자, A<B, A<B,

을 각각 구하시오A~=B, A==B .

A= 1 2 3 4 5 A= 1 2 3 4 5 A= 1 2 3 4 5 A= 1 2 3 4 5

B= 3 2 1 3 2 B= 3 2 1 3 2 B= 3 2 1 3 2 B= 3 2 1 3 2

A>B 0 0 1 1 1 A<B 1 0 0 0 0 A~=B 1 0 1 1 1 A==B 0 1 0 0 0

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> A=[1 2 3 4 5]; B=[3 2 1 3 2];

>> A>B, A<B, A~=B, A==B

ans=

0 0 1 1 1

ans=

1 0 0 0 0

ans=

1 0 1 1 1

ans=

0 1 0 0 0

Page 17: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

예제 행렬 및 이 각각[ 1.6] A B A = [ 1 2 3 4 5] , B = [ 3 2 1 3 2]일 때 행렬 의 길, C = [A,B]

이 최대값 보다 큰 원소 그리고 보다 큰 원소의 개수를 각각 구하시오, , 3 , 3 .

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> A=[1 2 3 4 5]; B=[3 2 1 3 2];

>> C=[A,B], length(C), max(C), find(C>3), length(find(C>3))

C =

1 2 3 4 5 3 2 1 3 2

ans =

10

ans =

5

ans =

4 5

ans =

2

논리 연산자논리 연산자논리 연산자논리 연산자(2)(2)(2)(2)

동일한 차원의 두 입력에 대하여 아래의 표에 나타난 논리 연산자를 수행한다 입력치가 가 아니면 참. 0

이면 거짓 이다(1), 0 (0) .

논리 연산자 내 용

A&B논리곱․행렬 의 대응 원소들이 둘 다 이 아닐 경우 하나라도 이면A, B 0 1, 0 0․

A|B논리합․행렬 의 대응 원소들이 하나라도 인 경우 둘 다 이면A, B 1 1, 0 0․

~A논리부정․은 은1 0, 0 1․

예제 행렬 및 이 각각[ 1.7] A B A = [ - 3 2 9 0 4 ] , B = [ 1 0 2 1 8]일 때 관계연산자, A&B,

을 각각 구하시오A|B, ~A, (A>0) & (A<5) .

Page 18: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

A= -3 2 9 0 4 A= -3 2 9 0 4 A= -3 2 9 0 4 A= -3 2 9 0 4

B= 1 0 2 1 8 B= 1 0 2 1 8 (A>0)

&(A<5)A&B 1 0 1 0 1 A|B 1 1 1 1 1 ~A 0 0 0 1 0 0 1 0 0 1

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> A=[-3 2 9 0 4]; B=[1 0 2 1 8];

>> A&B, A|B, ~A, (A>0) & (A<5)

ans =

1 0 1 0 1

ans =

1 1 1 1 1

ans =

0 0 0 1 0

ans =

0 1 0 0 1

흐름 제어문흐름 제어문흐름 제어문흐름 제어문 (flow control statements)(flow control statements)(flow control statements)(flow control statements)■■■■

일반적인 프로그래밍 언어에서와 같이 에서도 다음과 같은 흐름 제어문을 포함하고 있다MATLAB .

if statements, switch statements, for loops, while loops

문문문문(1) if(1) if(1) if(1) if

단일 조건문-

조건 실행문>> if

>> end

조건이 참일 경우 실행문이 실행되고 조건이 거짓일 경우 문 다음으로 넘어간다, , if .

복수 조건문-

조건 실행문>> if 1 1

조건 실행문>> elseif 2 2

>> .....

실행문>> else n

>> end

Page 19: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

여러 개의 조건들이 존재할 경우 복수 조건문이 사용된다 조건 이 참일 경우 실행문 이 수행되고 문. n , n if

을 빠져나온다.

행렬- 의 역행렬을 구하기 위하여 가 이 아닌 단일 조건문으로 다음과 구할 수 있다det 0 .

>> A=[2 5; 1 3];

>> if det(A)~=0 inv(A)

>> end

차의 마방진 을 생성하기 위하여 세 가지 조건이 필요하다- n (magic square) .

즉 이 홀수일 때 이 로 나누지 못하는 짝수일 때 이 로 나누어질 때 이다, 1) n , 2) n 4 , 3) n 4 .

>> if rem(n,2) ~= 0

>> M = odd_magic(n)

>> elseif rem(n,4) ~= 0

>> M = single_even_magic(n)

>> else

>> M = double_even_magic(n)

>> end

문문문문(2) switch(2) switch(2) switch(2) switch

문은 변수 또는 수식의 값에 따라 선택된 실행문을 수행한다 기본적인 형식은 다음과 같다switch . .

수식switch (scalar or string)

값case 1

실행문1 % Executes if expression is value1

값case 2

실행문2 % Executes if expression is value2

.

값case n

실행문n % Executes if expression is valuen

otherwise

실행문 % Executes if expression does not match any case

end

문의 수식이 값 이면 실행문 이 수행되며 그렇지 않으면 의 실행문이 수행된다switch n n , otherwise .

>> switch x

>> case -1

Page 20: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

>> disp('negative one');

>> case 0

>> disp('zero');

>> case 1

>> disp('positive one');

>> otherwise

>> disp('other value');

>> end

변수 의 값이 이면 이 이면 이면 이외의 값이면x -1 ‘negative one' , 0 ’zero', 1 ‘positive one', ’other value'

가 화면에 출력 함수 된다(disp ) .

문문문문(3) for(3) for(3) for(3) for

문 내에 특정수 수만큼 실행문이 반복 수행된다 일반적인 형식은 다음과 같다for . .

변수 수식 초기값 증가값 끝값for = % : :

실행문

end

변수가 초기값으로 시작하여 실행문 수행한 후에 증가 값에 의하여 증가하여 끝 값이 될 때까지 실행문이

반복 수행한다 여기서 증가 값이 없는 경우에는 기본적으로 만큼 증가된다. 1 .

예제[ 1.8]

을 문을 이용하여 구하면 아래와 같다for .

합계 을 우선 으로 초기화한다 다음 을 에서부터 씩 증가하여 일 때까지 을 계속 더한다s 0 . i 1 1 10 i2 .

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> s=0;

>> for i=1:10 는 씩 증가%i 1

>> 는s=s+power(i,2); % power(x,n)

>> end

Page 21: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

예제[ 1.9] × 행렬Hilbert 을 생성하여라.

먼저 × 행렬 을 으로 초기화한다 행렬 는 차원이므로 이중 구문을 이용하여 번Hilbert a 0 . a 2 , for (i,j)

째 원소 에 을 대입함으로써 아래 프로그램에서와 같이 행렬을 구한다a(i,j) 1/(i+j -1) , Hilbert .

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> a = zeros(n,n) % Preallocate matrix

>> for i = 1:n

>> for j = 1:n

>> a(i,j) = 1/(i+j -1);

>> end

>> end

문문문문(4) while(4) while(4) while(4) while

문과 유사하나 문은 수식의 조건이 참일 때까지 반복 수행한다 즉 이 아닌 원소를 가지는 수식for , while . , 0

이면 실행문을 계속 수행하고 이 되는 조건이면 수행을 멈춘다 일반적인 형식은 다음과 같다, 0 . .

수식 관계 연산식 포함while % ==, <, >, <=, >=, or ~=

실행문

end

예제[ 1.10] f(x ) = e x의 급수는Taylor f̂ ( x ) = 1 + x +x 2

2!+x 3

3!+ ⋯ 이다. 에서 뒤

의 항이 보다 작게 될 때의 급수 합과 을 구하고자 한다.

먼저 반복 횟수 을 급수에 의한 근사값 을 각 항의 값 을 로 초기화한다 구문에i 0, Taylor ex 1, a 1 . while

의하여 다음과 같이 구한다.

가 보다 작을 때까지 다음을 반복 수행한다a 0.00001 .①

에 를 더하고 를 씩 증가한다-1 ex a i 1 .①

을 와 같이 구한다-2 a (0.5^i)/factorial(i) .①

근사값 및 오차 를 계산하여 출력한다ex e = abs(exp(0.5)-ex) .②

Page 22: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> i=0; ex=1; a=1;

>> while a>=0.0001

>> ex=ex+a; i=i+1;

>> a=(0.5^i)/factorial(i);

>> end

>> i, ex, a, abs(exp(0.5)-ex)

그래픽 그리기그래픽 그리기그래픽 그리기그래픽 그리기■■■■

간단한 그래픽 함수간단한 그래픽 함수간단한 그래픽 함수간단한 그래픽 함수(1) MATLAB 2D/3D(1) MATLAB 2D/3D(1) MATLAB 2D/3D(1) MATLAB 2D/3D

에서는 높은 수준의 차원 및 차원 그래픽 함수들을 제공하고 있으며 각 그래프들에 주석을 추MATLAB 2 3 ,

가할 수 있도록 여러 가지 함수들을 제공하고 있다.

먼저 기본적인 차원 그래픽 함수들을 간략히 살펴보면 각각의 함수들은 입력을 행렬 및 벡터의 형태로2 ,

받아들이며 입력 자료에 따라 자동적으로 축의 배율을 설정해서 그래프를 그린다 각 그래프 함수들에 의, .

하여 그래프 형태를 설정한 후에 제목 축명 눈금 격자 및 그래프에 대한 설명 등을 아래의 함수에 의하, , ,

여 추가할 수 있다.

2D

그래픽

함수

plot 벡터 행렬의 열에 대하여 선형 배율의 그래프/

logplot 축 모두 로그 배율의 그래프x, y

semilogx 축은 로그 배율 축은 선형 배율의 그래프x , y

semilogy 축은 선형 배율 축은 로그 배율의 그래프x , y

추가

함수

title 그래프의 제목

xlabel 축명x

ylabel 축명y

text 문장을 그래프 상 임의의 위치에 표시

gtext 문장을 그래프 상 마우스에 의하여 지정된 위치에 표시

grid 눈금 격자 표시

차원 그래픽 함수들을 살펴보면 차원 공간을 표현하기 위하여 선 면 또는 와이어 프레임 등을 사용3 , 3 , ,

한다 함수들에는 등이 있다. plot3, contour, contour3, mesh, meshc, meshz, surf, surfc, surfl, fill3 .

본 교재에서는 함수를 이용한 그래픽을 나타내고자 하므로 나머지 함수들에 대한 자세한 내용plot 2D ,

Page 23: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

은 를 참고하길 바란다MATLAB Help .

그래픽 함수그래픽 함수그래픽 함수그래픽 함수(2) plot(2) plot(2) plot(2) plot

형식○

plot(y)․가 실수이면 각각의 인덱스에 대한 의 행을 선으로 그림- y , y

가 복소수이면 는 와 동일- y , plot(y) plot(real(y), imag(y))

예제[ 1.11] ≦ ≦ 일 때 의 그래프를 그리시오.

함수 는 이고 는 각각 이다 즉 함수를y sin(x) , x 0:pi/50:2*pi . , x=[0, pi/50, 2*pi/50, 3*pi/50, , 2*pi]. plot…

이용하여 아래와 같이 작성하면 그래프가 출력된다.

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> x=0:pi/50:2*pi; y=sin(x);

>> plot(y)

결과 그래프결과 그래프결과 그래프결과 그래프■■■■

그림 1-3. 의 그래프

plot(x1, y1, ‘LineSpec‘, ...)․의 모든 쌍에 선들을 그림- (xn, yn) .

이 행렬일 때 행렬의 행 또는 열에 대하여 벡터로 선으로 그려진다 이 때 행 또는 열에 대- xn, yn , .

한 벡터의 크기는 행렬의 것과

Page 24: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

일치된다.

선의 형태 또는 색상 등을 지정- LineSpec :

기호 색상 기호 선의 형태

y yellow . point

m magenta o circle

c cyan x x-mark

r red + plus

g green * star

b blue - solid

w white : dotted

k black -. dashdot

-- dashed

h = plot(...)․선 객체에서 주어진 열벡터를 반환-

plot(... 'PropertyName', PropertyValue, ...)․에 의하여 생성된 모든 선 객체들의- plot ColorOrder,

의 위치 색상 및 크기 등의 성질을 지정LineStyleOrder, Marker ,

에서 디폴트로 지정되어 있음- MATLAB

예제[ 1.12] ≦ ≦ 일 때, 을 선의 형태가 및 이 되도록 그래‘0’ ‘*’

프를 그리시오.

는 예제 에서와 동일하게 작성한다 함수 및 는 및 이다 두 함수를 동일한 상x [ 1.11] . y1 y2 sin(x) cos(x) . x

에서 그리기 위하여 함수 내에 와 을 차례로 작성한다plot x, y1, '0' x, y2, '*' .

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> x=0:pi/50:2*pi;

>> y1=sin(x); y2=cos(x);

>> plot(x,y1, 'o', x, y2, '*')

결과 그래프결과 그래프결과 그래프결과 그래프■■■■

는 으로 그려진 선이고 는 으로 그려진 선이다y1 ‘0’ , y2 ‘*’ .

Page 25: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

그림 1-4. 의 그래프

예제[ 1.13] - π ≤ x≤π일 때, y= tan (sin (x ))- sin ( tan (x))의 그래프를 마커 및 라벨링을 지정하

여 그리시오.

는 이고 이를 각 에 대한 그래프는 아래의 함수를 이용한다y tan(sin(x)) - sin(tan(x)) , x=-pi:pi/10:pi plot .

함수 내에 를 제외한 인자를 살펴보면plot x, y , ‘-rs-rs-rs-rs는 선의 색상을 로 하고' Red , ’LineWidthLineWidthLineWidthLineWidth 는 선의 굵',2

기를 로 지정한다2 . 'MarkerEdgeColorMarkerEdgeColorMarkerEdgeColorMarkerEdgeColor', 'kkkk 는 마커의 라인 색상을 으로 지정하고' Black ,

'MarkerFaceColorMarkerFaceColorMarkerFaceColorMarkerFaceColor', 'gggg 는 마커의 채우기 색상을 으로 지정한다 마지막으로' Green . ‘MarkerSizeMarkerSizeMarkerSizeMarkerSize 은 마',10

커의 크기를 으로 지정한다10 .

다시 요약하면 다음과 같다.

선의 굵기 지정- LineWidth :

마커의 라인 또는 마커의 색상 지정- MarkerEdgeColor -

마커의 채우기 색상 지정- MarkerFaceColor -

마커의 크기 지정- MarkerSize -

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> x = -pi:pi/10:pi;

>> y = tan(sin(x)) - sin(tan(x));

>> plot(x,y,'--rs','LineWidth',2, 'MarkerEdgeColor','k',...

'MarkerFaceColor','g',‘MarkerSize',10)

결과 그래프결과 그래프결과 그래프결과 그래프■■■■

Page 26: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

그림 1-5. y= tan (sin (x))- sin ( tan (x))의 그래프

예제[ 1.14] - π ≤ x≤π일 때, y= sin (x )의 그래프를 그리고 그래프 상에 라벨 지정 축 명 및, , x, y

그래프의 제목을 넣으시오.

먼저 에 대한 를 에 의하여 다음과 같이 그린다x y plot(x,y) .

프로그래밍프로그래밍프로그래밍프로그래밍MatlabMatlabMatlabMatlab■■■■

>> x = -pi:.1:pi;

>> y = sin(x);

>> plot(x,y)

>> set(gca,'XTick',-pi:pi/2:pi)

>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})

>> xlabel('-\pi \leq \Theta \leq \pi')

>> ylabel('sin(\Theta)')

>> title('Plot of sin(\Theta)')

>> text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)',...

'HorizontalAlignment','left')

>> set(findobj(gca,'Type','line','Color',[0 0 1]),'Color','red',...

'LineWidth',2)

프로그램의 명령을 살펴보면,

Page 27: Matlab 프로그래밍기초cfs3.tistory.com/upload_control/download.blog?fhandle...Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee 2 MATLAB 의기본명령어

Dept. of Information Security, Tongmyong University, Prof. Suk-Hwan Lee

1) set(gca,'XTick',-pi:pi/2:pi)set(gca,'XTick',-pi:pi/2:pi)set(gca,'XTick',-pi:pi/2:pi)set(gca,'XTick',-pi:pi/2:pi) 축 상의 눈금을, x [ - π π 이내로 하며] ,

set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})은 눈금 라벨을 [ - π , - π /2 , 0, π/2 , π 으로]

한다.

2) xlabel('-\pi \leq \Theta \leq \pi')xlabel('-\pi \leq \Theta \leq \pi')xlabel('-\pi \leq \Theta \leq \pi')xlabel('-\pi \leq \Theta \leq \pi')은 축 명을x - π ≤θ≤π으로 하고, ylabel('sin(\Theta)')ylabel('sin(\Theta)')ylabel('sin(\Theta)')ylabel('sin(\Theta)')

은 축명을y sin (θ)로 한다.

3) title('Plot of sin(\Theta)')title('Plot of sin(\Theta)')title('Plot of sin(\Theta)')title('Plot of sin(\Theta)')은 그래프의 제목을 Plot of sin (θ)로 한다.

4) text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','HorizontalAlignment','left')text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','HorizontalAlignment','left')text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','HorizontalAlignment','left')text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','HorizontalAlignment','left')은 그래프 상의

( - π/4 , sin ( - π/4 ) ) 위치에 sin (- π/4 )의 글자를 왼쪽 화살표와 함께 수평으로 왼쪽 정렬하여 나타

나게 한다.

5) set(findobj(gca,'Type','line','Color',[0 0 1]),'Color','red','LineWidth',2)set(findobj(gca,'Type','line','Color',[0 0 1]),'Color','red','LineWidth',2)set(findobj(gca,'Type','line','Color',[0 0 1]),'Color','red','LineWidth',2)set(findobj(gca,'Type','line','Color',[0 0 1]),'Color','red','LineWidth',2)은 그래프의 선을 색상Red

및 의 굵기로 나타나게 한다2 .

결과 그래프결과 그래프결과 그래프결과 그래프■■■■

그림 1-6. y= sin (x )의 그래프