Купить Matlab | Mathematica | Mathcad | Maple | Statistica | Другие пакеты | ![]() |
Internet-класс | Примеры | Методики | Форум | Download | |
![]() |
|
|
Синтаксис: S = sparse(i, j, s,
m, n, nzmax) Описание: Функция sparse - это встроенная функция, которая формирует матрицы в соответствии с правилами записи разреженных матриц, принятыми в системе MATLAB; количество входных аргументов этой функции - от 1 до 6. Функция S = sparse(A) преобразовывает полную матрицу в разреженную, удаляя из описания нулевые элементы; если исходная матрица разреженная, то sparse(S) возвращает S. Общая форма функции S = sparse(i, j, s, m, n, nzmax) использует строки массива [i j s] для формирования разреженной матрицы размера m х n с ненулевыми элементами, количество которых не превышает nzmax. Векторы i и j задают позиции элементов и являются целочисленными, а вектор c определяет числовое значение элемента матрицы, которое может быть действительным или комплексным. При формировании разреженной матрицы все строки вида [i j 0] из описания удаляются. Длина результирующего вектора s точно совпадает с количеством ненулевых элементов разреженной матрицы. При формировании разреженной матрицы допускается использовать меньшее число входных аргументов, чем это требуется, а также ряд других упрощений. Так, один из аргументов i, j или s может быть скаляром, но при этом система MATLAB сама дополнит такой вектор до требуемой длины, которая определяется другими элементами. Обращение вида S = sparse(i, j, s, m, n) предполагает по умолчанию, что nzmax = lenght(s). Обращение вида S = sparse(i, j, s) предполагает, что m = max(i) и n = max(j); эти функции вычисляются раньше, чем будут удалены строки с нулевыми значениями s. Обращение вида S = sparse(m, n) резервирует пространство для разреженной матрицы и равносильно обращению sparse([ ], [ ], [ ], m, n, 0), где все m х n элементов являются нулевыми. Над разреженными матрицами могут совершаться любые арифметические, логические и индексные операции, то же справедливо и для смешанных операндов - полных и разреженных массивов. Операции с однородными операндами возвращают тот же тип операнда; в случае смешанных операндов, как правило, возвращается полный тип, за исключением случаев, когда в явном виде сохраняется разреженный тип. Например, при поэлементном умножении массивов A .* S, где S - разреженный массив. Некоторые операции, например S >= 0, приводят к генерации так называемых BS(Big Space)-матриц, которые имеют разреженную структуру, но очень большое количество нулевых элементов. Примеры: Функция S = sparse(1:n, 1:n, 1) формирует единичную матрицу n х n с разреженной структурой и коэффициентом заполнения 1/n. Тот же результат может быть получен с помощью оператора S = sparse(eye(n, n)), но при этом промежуточная матрица будет иметь полную структуру. Массив вида B = sparse(10000, 10000, pi), состоящий из одного элемента, вероятно, не очень полезен, но такое обращение допустимо. Не пытайтесь применить функцию full(B), вам потребуется 800 М памяти. Следующая последовательность операторов сначала определяет структуру, а затем формирует разреженную матрицу.
[i, j, s] = find(S); Сопутствующие функции: FULL, FIND, SPY, NONZEROS, NNZ, NZMAX, DIAG, SPONES, SPRANDSYM. |
| На первую страницу | Поиск | Купить Matlab | |
|
|