И другие программы этой серии
Большинству компьютеров
для хранения действительного числа требуется вдвое больше пространства,
чем для целого. Для таких компьютеров sparse(X) требует меньше про
странства, чем full(X), если плотность nnz/prod(size(X))<2/3. Вы
полнение операций над разреженными матрицами, однако, требует больше
затрат времени, чем над полными, поэтому для эффективной работы с раз
реженными матрицами плотность расположения ненулевых элементов
должна быть много меньше 2/3.
Примеры:
>> q=sprand(3,4,0.6)
q=
(1,1)
(1,2)
(2,2)
(3,3)
>> d=full(q)
d=
0.0129
0
0
цы в соответствии с правилами записи разреженных матриц, принятыми
в системе MATLAB;
• S=sparse(i,j,s,m,n,nzmax) использует векторы i, j и s для того, что
бы генерировать разреженную матрицу размера m?n с ненулевыми элемен
тами, количество которых не превышает nzmax. Векторы i и j задают пози
ции элементов и являются целочисленными, а вектор s определяет
числовое значение элемента матрицы, которое может быть действительным
или комплексным. Все элементы вектора s, равные нулю, игнорируются
вместе с соответствующими значениями i и j. Векторы i, j и s должны
быть одной и той же длины;
• S = sparse(i,j,s,m,n) использует nzmax=length(s);
• S = sparse(i,j,s) использует m=max(i) и n=max(j). Максимумы вы
числяются раньше, чем нулевые строки столбца S, которые будут удалены;
• S = sparse(m,n) равносильно sparse([ ],[ ],[ ],m,n,0). Эта коман
да генерирует предельную разреженную матрицу, где m?n элементов ну
левые.
Все встроенные в MATLAB арифметические, логические и индексные опера
ции могут быть применены как к полным матрицам, так и к разреженным. Опера
ции над разреженными матрицами возвращают разреженные матрицы, а опера
ции над полными матрицами возвращают полные матрицы. В большинстве
случаев операции над смешанными матрицами возвращают полные матрицы. Ис
ключение составляют случаи, когда результат смешанной операции явно сохра
няет разреженный тип. Так бывает при поэлементном умножении массивов A.*S,
где S – разреженный массив.