갈루아의 반서재

728x90

1) 왼쪽에서 오른쪽으로, 그리고 위에서 아래로 인덱싱된다.

 

 

2) (nrow) 는 행의 갯수를 특정하고, (ncol) 은 열의 갯수를 특정한다.

 

 

 

 

 

 

 

 

3) 입력된 값의 수(예제에서는 9개)보다 많은 원소(예제에서는 10개)를 가지는 행렬을 만들려고 하면, 아래와 같은 경고 메시지를 출력한다.

 

 

data length [9] is not a sub-multiple or multiple of the number of rows [2]

 

 

모자라는 1칸에는 첫번째 값이 1이 삽입된다. 행렬이 채워질 때까지 반복적으로 값이 들어가게 된다.


 

 

 

 

앞에서도 보았듯이 결과값 앞에 [1] 이 출력되는 것을 보아왔다. [1] 은 행렬의 한 열 또는 한 행과 동등이다. 위 그림의 첫번째 예는 1+1 에 대한 답인 2 라는 한 개의 원소를 가진 벡터이고, 두 번째 예 vector1 은 9개의 원소로 이루어진 벡터이다. 9개의 원소를 가진 두 번째 예의 벡터는 1개의 행과 9개의 열을 가진 행렬과 대략 비슷하다.

 

 

4) 행렬간의 연산

matrix1 이 다음과 같다고 하자.

 

 

> matrix1
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9

 

 

(1) 행렬에 값을 더하는 경우에는 각각의 위치의 원소에 해당 값을 더한다.

> matrix1+2
[,1] [,2] [,3]
[1,] 3 6 9
[2,] 4 7 10
[3,] 5 8 11

 

* 두 행렬의 곱에 대해서는 다음 포스팅 참조

http://www.jpalace.net/admin/entry/post/?id=398

 

(2) 두 행렬을 더하는 경우

이 경우 동일한 차원(같은 수의 행과 열을 가졌다는 의미)의 행렬만 더할 수 있다

 

 

> matrix1+matrix1
[,1] [,2] [,3]
[1,] 2 8 14
[2,] 4 10 16
[3,] 6 12 18

 

 

 

 

(3) 두 행렬을 곱하는 경우

행렬의 곱셈은 다음 "%*%" 를 이용한다.

(행렬의 원소간 곱과의 차이에 유의)

 

 

행렬의 곱셉(product of row and column operations)

> matrix1%*%matrix1
[,1] [,2] [,3]
[1,] 30 66 102
[2,] 36 81 126
[3,] 42 96 150

 

 

행렬의 원소간 곱(element-by-element multiplication)
> matrix1*matrix1
[,1] [,2] [,3]
[1,] 1 16 49
[2,] 4 25 64
[3,] 9 36 81

 

 

 

5) 행렬의 전치(transpose of a matrix)

행과 열을 스위칭하는 것

 

 

 

 

728x90