Chapter 7 Matrix

7.1 Matrix 선언

// 값을 지정하지 않고 자료형과 변수만 선언
NumericMatrix A;

// A1 <- matrix(0, nrow = 2, ncol = 2)
NumericMatrix A1(2);

// A2 <- matrix(0, nrow = 2, ncol = 3)
NumericMatrix A2(2, 3);

7.2 Matrix 값 접근

Vector와 마찬가지로 matrix에서도 인덱싱과 슬라이싱을 할 수 있지만, 연속적인 위치가 아닌 값들을 동시에 가져오는 것은 불가능하다. 다음의 코드를 확인해보자.

NumericMatrix A(5, 5);

// A[2, 3]
double a11 = A(1, 2);

// A[1, ]
NumericVector row1 = A(0, _);
// 또는
NumericVector row1 = A.row(0);

// A[, 2]
NumericVector col1 = A(_, 1);
// 또는
NumericVector col1 = A.column(1);

// A[1:2, 3:4]
NumericMatrix B = A(Range(0, 1), Range(2, 3));

7.3 Matrix 관련 함수

A라는 Matrix 타입의 변수가 있다고 가정하자.

7.3.1 A.nrow(), A.rows()

Matrix A의 행 개수 반환

7.3.2 A.ncol(), A.cols()

Matrix A의 열 개수 반환

7.3.3 A.row(i)

Matrix A의 i번쨰 행 반환 (return 타입은 Vector)

7.3.4 A.col(j)

Matrix A의 j번쨰 열 반환 (return 타입은 Vector)

7.3.5 transpose(A)

Matrix A를 transpose한 Matrix 반환 (return 타입은 Matrix)