И другие программы этой серии
Эта функция дает
только выход s, но не значения i и j из аналогичного выражения
[i,j,s]=find(A). Вообще, length(s)=nnz(A)?nzmax(A)?prod
(size(A)). Пример:
>> g=nonzeros(sparse(hankel([1,2,8])))
g=
1
2
8
2
8
8
• R = spones(S) генерирует матрицу R той же разреженности, что и S, но
заменяет на 1 все ненулевые элементы исходной матрицы. Пример:
>> S=sprand(3,2,0.3)
S=
(3,1)
(1,2)
>> spones(S)
ans =
(3,1)
(1,2)
0.2987
0.1991
1
1
• nzmax(S) возвращает количество ячеек памяти для ненулевых элементов.
Обычно функции nnz(S) и nzmax(S) дают один и тот же результат. Но
если S создавалась в результате операции над разреженными матрицами,
такой как умножение или LU разложение, может быть выделено больше
элементов памяти, чем требуется, и nzmax(S) отражает это. Если S – раз
реженная матрица, то nzmax(S) – максимальное количество ячеек для
хранения ненулевых элементов. Если S – полная матрица, то nzmax(S)=
=numel(S). Пример:
>> q=nzmax(sparse(hankel([1,7,23])))
q=6
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 арифметические, логические и индексные опера
ции могут быть применены как к полным матрицам, так и к разреженным.
Продолжение в части 2