2015년 6월 24일 수요일

MATLAB 행렬 기본 입력 (part 2) : 함수 행렬과 전치 행렬

 여기에서는 이전 포스트에 이어서 기본적인 행렬 생성의 기본적인 내용을 설명하겠다.

함수의 행렬

 행렬을 입력하는 또 다른 예로, 아래와 같이 주어진 행렬 C를 생각해보자.
위 행렬은 다음과 같이 입력될 수 있다.


>> C = [1 exp(-0.02); sqrt(2) 3]; 󰎠
>> C 󰎠
C =
1.0000 0.9802
1.4142 3.0000


여기서 exp(x)함수는 ex 값(exponetial)을 구하는 함수이고, sqrt(x)함수는 제곱근(square root)을 구하는 함수이다. exp(x)함수나 sqrt(x)함수의 용법이 궁금하다면 help 명령어를 사용하면 된다. help exp 명령을 내리면 exp()함수에 대한 기본 설명, 유사한 함수들 그리고 오버로드(overload)된 함수들에 대한 설명이 나오는 것을 알 수 있다. 유사한 함수들의 목록에 expm()함수가 있는데 함수명 끝의 m은 이 함수가 행렬연산을 한다는 것을 나타내며 스칼라 연산 함수들은 보통 대응하는 행렬 연산 함수를 가지고 있다.


※ 스칼라 연산이란 예를 들어 A=[1 2; 3 4]이고 exp(A)를 수행하면 결과값이 [exp(1) exp(2); exp(3) exp(4)]와 같이 행렬 각 요소에다가 함수값을 취하는 겻을 의미한다. 이와 달리 행렬 연산 함수 expm(A)는 다음과 같은 Taylor급수 정의식에 의한 결과값을 계산하게 된다.


[그림 1] Octave 4.0에서 help exp 명령을 수행한 결과


전치 행렬 (transpose)

 어떤 행렬의 전치행렬(transpose)을 만드는 방법은 행렬의 끝에 작은따옴표 (‘)를 붙이는 것이다. 예를 들어서 C행렬의 전치행렬을 만들어 D에 입력하고 싶다면 다음과 같이 한다.


>> D=C'
D =
1.0000 1.4142
0.9802 3.0000


어떤 행렬의 대각 요소(diagonal element)란 행 인덱스와 열 인덱스가 같은 요소를 그리고 비대각요소(off-diagonal element)는 같지 않은 요소를 의미한다. 위의 예에서 행렬 C의 비대각요소의 위치가 대칭적으로 바뀌어서 D에 저장되었음을 알 수 있다.
 또는 행렬을 입력할 때 마지막에 (‘)을 추가하면 입력되는 행렬의 전치행렬이 바로 구해진다.


>> D=[1 exp(-0.02); sqrt(2) 3]'
D =
1.0000 1.4142
0.9802 3.0000


이와 같이 전치 행렬은 행렬의 끝에 작은 따옴표로 쉽게 구해진다.



댓글 없음:

댓글 쓰기