полный

Преобразуйте разреженную матрицу в полное устройство хранения данных

Синтаксис

A = full(S)

Описание

пример

A = full(S) преобразовывает разреженную матрицу S в полную организацию устройства хранения данных, такую, что issparse(A) возвращает логический 0 (false).

Примеры

свернуть все

Измените формат устройства хранения данных матрицы и сравните требования устройства хранения данных.

Создайте случайную разреженную матрицу. Отображение разреженных матриц в MATLAB ® не использует все нули и показывает местоположение и значение ненулевых элементов.

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

Преобразуйте матрицу в полное устройство хранения данных. Отображение MATLAB матрицы отражает новый формат устройства хранения данных.

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, удваивается (8 байтов каждый), или 648=512 байты.

  • S использует устройство хранения данных для 15 ненулевых элементов, а также 24 целых чисел, описывающих их положения, для в общей сложности 398=312 байты.

whos
  Name      Size            Bytes  Class     Attributes

  A         8x8               512  double              
  S         8x8               312  double    sparse    

Входные параметры

свернуть все

Разреженная матрица, чтобы преобразовать, заданный как матрица. Если S уже является полной матрицей, то A идентичен S.

Советы

  • Если X является m-by-n матрица с nz ненулевые элементы, то full(X) требует, чтобы пробел сохранил элементы m*n. С другой стороны, sparse(X) требует, чтобы пробел сохранил элементы nz и целые числа (nz+n+1).

    Плотность матрицы (nnz(X)/numel(X)) определяет, более ли эффективно сохранить матрицу как разреженную или полную. Точная точка перехода зависит от матричного класса, а также платформы. Например, в 32-битном MATLAB®, двойная разреженная матрица с меньше, чем о 2/3 плотности требует меньшего количества пробела, чем та же матрица в полном устройстве хранения данных. В 64-битном MATLAB, однако, двойные матрицы меньше чем с половиной их ненулевых элементов более эффективны, чтобы сохранить как разреженные матрицы.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a