full

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

Синтаксис

Описание

пример

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++ с помощью Coder™ MATLAB ®

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