MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

MATLAB\MATLAB

В.Г.Потемкин "Справочник по MATLAB"
Работа с разреженными матрицами

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

Преобразование разреженных матриц

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

Синтаксис:

            A = full(S)

Описание:

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

Пусть X - матрица размера m х n c nz = nnz(X) ненулевыми элементами. Тогда для размещения выхода функции full(X) требуется пространство для m * n действительных чисел, в то время как входная разреженная матрица sparse(X) требует пространства для размещения только nz действительных и nz + n целых чисел. Большинству компьютеров для хранения действительного числа нужно вдвое больше памяти, чем для целого. Для таких компьютеров хранение в форме sparse(X) будет экономичнее, чем в форме full(X), если коэффициент заполнения nnz/(m х n) < 2/3. Однако обработка разреженных матриц требует существенно большего числа операций, чем полных, так что коэффициент заполнения должен быть существенно меньше, чем 2/3, чтобы работа с разреженной матрицей оказалась более эффективной.

Пример:

Рассмотрим разреженную матрицу с коэффициентом заполнения около 2/3.

            S = sparse(rand(200,200) < 2/3);
            A = full(S); whos

Name (переменная) Size (размер массива) Elements (количество элементов) Bytes (размер памяти) Density (коэффициент заполнения) Complex (комплексная)
A 200 by 200 40000 320000 Full No
S 200 by 200 26797 322364 0.6699 No

В этом случае функции sparse(S) и full(S) требуют приблизительно одинакового объема памяти для хранения элементов.

Сопутствующие функции: SPARSE.

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика