exponenta event banner

sprand

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

Описание

пример

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

пример

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

пример

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

Примеры

свернуть все

Создать 60около-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около-1000 разреженная матрица с плотностью 0.1. Матрица имеет приблизительно 0.1*500*1000 = 50000 равномерно распределенные ненулевые записи.

R = sprand(500,1000,0.1);

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

n = nnz(R)
n = 47663

Создание случайного 50около-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