Main Content

full

희소 행렬을 비희소 저장 형식으로 변환

설명

예제

A = full(S)는 희소 행렬 S를 비희소 저장 구조로 변환하므로 issparse(A)는 논리값 0(false)을 반환합니다.

예제

모두 축소

행렬의 저장 형식을 변경하고 저장 요구 사항과 비교합니다.

희소 형식의 확률 행렬을 만듭니다. MATLAB®은 0을 모두 생략하고 0이 아닌 요소의 위치와 값을 표시하여 희소 행렬을 표시합니다.

rng default %for reproducibility
S = sprand(8,8,0.3)
S = 
   (2,1)       0.0344
   (7,1)       0.4456
   (8,1)       0.7547
   (2,2)       0.4387
   (4,3)       0.7655
   (7,3)       0.6463
   (8,4)       0.2760
   (1,6)       0.9502
   (5,6)       0.1869
   (8,6)       0.6797
   (3,7)       0.3816
   (4,7)       0.7952
   (8,7)       0.6551
   (6,8)       0.4898
   (7,8)       0.7094

행렬을 비희소 저장 형식으로 변환합니다. 새 저장 형식이 반영된 행렬이 표시됩니다.

A = full(S)
A = 8×8

         0         0         0         0         0    0.9502         0         0
    0.0344    0.4387         0         0         0         0         0         0
         0         0         0         0         0         0    0.3816         0
         0         0    0.7655         0         0         0    0.7952         0
         0         0         0         0         0    0.1869         0         0
         0         0         0         0         0         0         0    0.4898
    0.4456         0    0.6463         0         0         0         0    0.7094
    0.7547         0         0    0.2760         0    0.6797    0.6551         0

두 형식의 저장공간 요구 사항을 비교합니다.

  • A는 64개의 double형(각각 8바이트), 즉 648=512바이트를 위한 저장공간을 사용합니다.

  • S는 0이 아닌 요소 15개와 그 위치를 설명하는 24개의 정수, 총 398=312바이트를 위한 저장공간을 사용합니다.

whos
  Name      Size            Bytes  Class     Attributes

  A         8x8               512  double              
  S         8x8               312  double    sparse    

입력 인수

모두 축소

변환할 희소 행렬로, 행렬로 지정됩니다. S가 이미 비희소 행렬인 경우 AS와 같습니다.

  • X가 0이 아닌 nz개 요소를 포함하는 m×n 행렬인 경우 full(X)m*n개 요소를 저장할 공간을 필요로 합니다. 반면에, sparse(X)nz개 요소와 (nz+n+1)개 정수를 저장할 공간을 필요로 합니다.

    행렬의 밀도(nnz(X)/numel(X))에 따라 행렬을 저장할 때 희소와 비희소 중 어느 쪽이 더 효율적인지 결정됩니다. 정확한 교차점은 행렬 클래스와 플랫폼에 따라 달라집니다. 예를 들어, 32비트 MATLAB®에서 밀도가 2/3 미만인 double형 희소 행렬의 경우 비희소 저장 형식의 동일한 행렬보다 적은 공간이 필요합니다. 그러나 64비트 MATLAB에서 0이 아닌 요소가 절반 미만인 double형 행렬은 희소 행렬로 저장하는 것이 보다 효율적입니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

참고 항목

|