И другие программы этой серии
Векторы 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 – разреженный массив. Пример:
>> i=[2,4,3];j=[1,3,8];s=[4,5+5i,9];t = sparse(i,j,s,5,8) t =
(2,1) 4.0000
(4,3) 5.0000+ 5.0000i
(3,8) 9.0000
Функция spconvert используется для создания разреженных матриц из простых разреженных форматов, легко производимых вне средств MATLAB:
• S = spconvert(D) преобразует матрицу D со строками, содержащими [i,j,r] или [i,j,r,s], где i – индекс ряда, j – индекс строки, r – численное значение, в соответствующую разреженную матрицу. Матрица D может иметь nnz или nnz+1 строк и три или четыре столбца. Три элемента в строке генерируют действительную матрицу, четыре элемента в строке генерируют комплексную матрицу (s преобразуется в мнимую часть значения элемента). Последняя строка массива D типа [m n 0] или [m n 0 0] может быть использована для определения size(S).
Начало в части 1