帮助中心帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
稀疏均匀分布随机矩阵
R = sprand(S)
R = sprand(m,n,density)
R = sprand(m,n,density,rc)
R = sprand(S) 创建一个稀疏矩阵,该矩阵具有与矩阵 S 相同的稀疏模式,但具有均匀分布的随机项。
R
S
示例
R = sprand(m,n,density) 创建一个随机的 m×n 稀疏矩阵,在区间 [0,1] 中 density 有大约 density*m*n 个均匀分布的非零项。
m
n
density
density*m*n
R = sprand(m,n,density,rc) 创建一个矩阵,该矩阵还具有约等于 rc 的条件数倒数。矩阵 R 由秩为 1 的矩阵之和构成。
rc
全部折叠
创建巴克敏斯特·富勒多面穹顶的连接图形的 60×60 稀疏邻接矩阵。绘制矩阵 S 的稀疏模式。
60
S = bucky; spy(S)
创建另一个稀疏矩阵 R,该矩阵具有与矩阵 S 相同的稀疏模式,但具有均匀分布的随机项。绘制 R 的稀疏模式。
R = sprand(S); spy(R)
创建一个密度为 0.1 的随机 500×1000 稀疏矩阵。该矩阵有大约 0.1*500*1000 = 50000 个均匀分布的非零项。
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。
50
100
0.2*50*100 = 1000
0.25
R = sprand(50,100,0.2,0.25);
显示矩阵 R 的条件数等于 1/0.25 = 4。
1/0.25 = 4
cond(full(R))
ans = 4.0000
输入矩阵,指定为满矩阵或稀疏矩阵。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical 复数支持: 是
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 是由应用于包含给定奇异值的对角矩阵的随机平面旋转生成的。它具有大量拓扑和代数结构。
lr
lr <= min(m,n)
sprand 用于生成密度较小的大型矩阵,如果 m*n 很小或 density 很大,则生成的非零值会比要求的少得多。
sprand
m*n
sprand 使用与 rand、randi 和 randn 函数相同的随机数生成器。您可以使用 rng 函数控制此生成器。
rand
randi
randn
rng
用法说明和限制:
不支持 rc 参量。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
请参阅 distributed.sprand (Parallel Computing Toolbox)。
distributed.sprand
全部展开
sprand 和 sprandn 函数在生成随机稀疏矩阵时,如果输出中非零元素的数量大于行数,则性能会得到提高。
sprandn
例如,生成一个非零元素的密度为 10% 的 10000×10000 矩阵比上一版本快 2.5 倍。
function timingSprand n = 1e4; d = 0.1; rng default tic sprand(n,n,d); toc end
大致的执行时间是:
R2021b:2.7 秒
R2022a:1.1 秒
代码是在运行 Windows® 10 的 Intel® Xeon® CPU W-2133 @ 3.60 GHz 测试系统上通过调用 timingSprand 函数进行计时的。
timingSprand
sprandn | sprandsym
sprandsym
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Contact your local office