블로그 보관함

2012년 2월 1일 수요일

Sparse Matrix



Sparse Matrix는 어디서나 중요한 문제가 된다.

MATLAB/Octave


우선 MATLAB에서다음과 같은 sparse matrix format을 사용할 수 있다. 세 컬럼으로 이루어진 텍스트 파일이다. row index, col index, value로 구성한다. 예를 들어, 다음과 같다.
1 1 1
2 2 2
3 3 3
4 4 4
2 3 5
4 3 6
4 5 7
5 2 8
5 5 0
이 텍스트 파일을 mat.mtl라는 이름으로 저장했다고하자. load를 이용해 파일을 읽고 spconvert()를 이용해 sparse matrix로 바꾼다.
octave-3.4.0:38> load mat.mtl;
octave-3.4.0:39> x = spconvert(mat);
이렇게 만들어진 sparse matrix는 다음과 같다.
octave-3.4.0:40> x
x =

Compressed Column Sparse (rows = 5, cols = 5, nnz = 8 [32%])

  (1, 1) ->  1
  (2, 2) ->  2
  (5, 2) ->  8
  (2, 3) ->  5
  (3, 3) ->  3
  (4, 3) ->  6
  (4, 4) ->  4
  (4, 5) ->  7
일반적인 형렬 형태로 보면 다음과 같다.
octave-3.4.0:41> full(x)
ans =

   1   0   0   0   0
   0   2   5   0   0
   0   0   3   0   0
   0   0   6   4   7
   0   8   0   0   0



댓글 없음:

댓글 쓰기