full

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

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

Создайте случайную разреженную матрицу. Отображение разреженных матриц в 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- 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