И другие программы этой серии
Вместо X можно вставить (X,
операция отношения, параметр), и тогда индексы и вектор столбец будут
отражать элементы матрицы, удовлетворяющие данному отношению.
Единственное исключение find(x ~= 0). Индексы те же, что и при испол
нении find(X), но вектор v содержит только единицы.
Пример:
>> q=sprand(3,4,0.6)
q=
(1,1)
(1,2)
(3,2)
(3,3)
• sprandsym(S) возвращает случайную симметрическую матрицу, нижние
поддиагонали и главная диагональ которой имеют ту же структуру, что и
матрица S. Элементы результирующей матрицы распределены по нормаль
ному закону со средним, равным 0, и дисперсией, равной 1.
• sprandsym(n,density) возвращает симметрическую случайную разре
женную матрицу размера n?n, которая имеет приблизительно density?n?n
ненулевых элементов; каждый элемент сформирован в виде суммы нор
мально распределенных случайных чисел (0?density?1).
• R = sprandsym(n,density,rc) возвращает матрицу с числом обуслов
ленности по отношению к операции обращения, равным rc. Закон распре
деления не является равномерным; значения случайных элементов симмет
ричны относительно 0 и находятся в пределах [–1 1]. Если rc – вектор
размера n, то матрица R имеет собственные значения, равные элементам
вектора rc. Таким образом, если элементы вектора rc положительны, то
матрица R является положительно определенной. В любом случае матрица
R генерируется с помощью случайного вращения по Якоби диагональных
0.7266
0.4120
0.2679
0.4399
238
(2,4)
(3,4)
>> [i,j]=find(q)
i=
1
1
3
3
2
3
j=
1
2
2
3
4
4
Типы данных – массивы специального вида
0.7446
0.9334
Разреженные матрицы
239
• full(S) преобразует разреженную матрицу S в полную; если исходная
матрица S была полной, то full(S) возвращает S. Пусть X – матрица раз
мера m?n с nz=nnz(X) ненулевыми элементами. Тогда full(X) требует
такой объем памяти, чтобы хранить m?n действительных чисел, в то время
как sparse(X) требует пространство для хранения лишь nz действитель
ных чисел и (n?z+n) целых чисел – индексов.