sprand

Разреженная равномерно распределенная случайная матрица

Описание

пример

R = sprand(S) создает разреженную матрицу, которая имеет тот же шаблон разреженности, что и матрица S, но с равномерно распределенными случайными записями.

пример

R = sprand(m,n,density) создает случайное m-by- n разреженная матрица с приблизительно density*m*n равномерно распределенные ненулевые значения для density в интервале [0,1].

пример

R = sprand(m,n,density,rc) создает матрицу, которая также имеет число взаимных обусловленности, приблизительно равное rc. Матрица R строится из суммы матриц ранга 1.

Примеры

свернуть все

Создайте 60-by- 60 разреженная матрица смежности график связности геодезического купола Бакминстера Фуллера. Постройте график шаблона разреженности матрицы S.

S = bucky;
spy(S)

Figure contains an axes. The axes contains an object of type line.

Создайте другую разреженную матрицу R который имеет тот же шаблон разреженности, что и матрица S, но с равномерно распределенными случайными записями. Постройте график шаблона разреженности R.

R = sprand(S);
spy(R)

Figure contains an axes. The axes contains an object of type line.

Создайте случайную 500-by- 1000 разреженная матрица с 0.1 плотности. Матрица имеет приблизительно 0.1*500*1000 = 50000 равномерно распределенные ненулевые значения.

R = sprand(500,1000,0.1);

Показать точное количество ненулевых элементов в матрице R.

n = nnz(R)
n = 47663

Создайте случайную 50-by- 100 разреженная матрица с приблизительно 0.2*50*100 = 1000 равномерно распределенные ненулевые значения. Задайте взаимное число обусловленности матрицы, которая будет 0.25.

R = sprand(50,100,0.2,0.25);

Покажите, что число обусловленности матрицы R равно 1/0.25 = 4.

cond(full(R))
ans = 4.0000

Входные параметры

свернуть все

Входная матрица, заданная как полная или разреженная матрица.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного числа: Да

Количество строк матрицы, заданное как неотрицательное целое число.

Количество матричных столбцов, заданное как неотрицательное целое число.

Плотность ненулевых элементов, заданная как скаляр. density должно находиться в интервале [0,1].

Типы данных: double

Обратное число обусловленности, заданная в виде скаляра или вектора. rc должно находиться в интервале [0,1].

Если rc является вектором длины lr, где lr <= min(m,n), затем R = sprand(m,n,density,rc) имеет rc как его первый lr сингулярные значения и все остальные равны нулю. В этом случае R генерируется случайными поворотами плоскости, приложенными к диагональной матрице с заданными сингулярными значениями. Он имеет большую топологическую и алгебраическую структуру.

Типы данных: double

Ограничения

  • sprand предназначен для создания больших матриц с малой плотностью и будет генерировать значительно меньше ненулевых значений, чем запрашивается, если m*n является маленьким или density является большим.

Совет

  • sprand использует тот же генератор случайных чисел, что и rand, randi, и randn функций. Вы можете управлять этим генератором с rng функция.

Расширенные возможности

См. также

|

Представлено до R2006a