Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

sprand

稀疏均匀分布随机矩阵

说明

R = sprand(S) 创建一个稀疏矩阵,该矩阵具有与矩阵 S 相同的稀疏模式,但具有均匀分布的随机项。

示例

R = sprand(m,n,density) 创建一个随机的 m×n 稀疏矩阵,在区间 [0,1] 中 density 有大约 density*m*n 个均匀分布的非零项。

示例

R = sprand(m,n,density,rc) 创建一个矩阵,该矩阵还具有约等于 rc 的条件数倒数。矩阵 R 由秩为 1 的矩阵之和构成。

示例

示例

全部折叠

创建巴克敏斯特·富勒多面穹顶的连接图形的 60×60 稀疏邻接矩阵。绘制矩阵 S 的稀疏模式。

S = bucky;
spy(S)

创建另一个稀疏矩阵 R,该矩阵具有与矩阵 S 相同的稀疏模式,但具有均匀分布的随机项。绘制 R 的稀疏模式。

R = sprand(S);
spy(R)

创建一个密度为 0.1 的随机 500×1000 稀疏矩阵。该矩阵有大约 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 使用与 randrandirandn 函数相同的随机数生成器。您可以使用 rng 函数控制此生成器。

扩展功能

版本历史记录

在 R2006a 之前推出

全部展开

另请参阅

|