MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
稀疏正态分布随机矩阵
R = sprandn(S)
R = sprandn(m,n,density)
R = sprandn(m,n,density,rc)
R = sprandn(___,typename)
R = sprandn(S) 创建一个稀疏矩阵,该矩阵具有与矩阵 S 相同的稀疏模式,但具有均值为 0 和方差为 1 的正态分布的随机项。
R
S
0
1
示例
R = sprandn(m,n,density) 创建一个随机的 m×n 稀疏矩阵,在区间 [0,1] 中 density 有大约 density*m*n 个正态分布的非零项。
m
n
density
density*m*n
R = sprandn(m,n,density,rc) 创建一个矩阵,该矩阵还具有约等于 rc 的条件数倒数。矩阵 R 由秩为 1 的矩阵之和构成。
rc
R = sprandn(___,typename) 返回指定数据类型的稀疏矩阵。支持上述语法中的任何输入参量组合,且可指定数据类型。 (自 R2025a 起)
typename
全部折叠
创建巴克敏斯特·富勒多面穹顶的连接图形的 60×60 稀疏邻接矩阵。绘制矩阵 S 的稀疏模式。
60
S = bucky; spy(S)
创建另一个稀疏矩阵 R,该矩阵具有与矩阵 S 相同的稀疏模式,但具有正态分布的随机项。绘制 R 的稀疏模式。
R = sprandn(S); spy(R)
创建一个密度为 0.1 的随机 500×1000 稀疏矩阵。该矩阵有大约 0.1*500*1000 = 50000 个正态分布的非零项。
0.1
500
1000
0.1*500*1000 = 50000
R = sprandn(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 = sprandn(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] 内。
条件数倒数,指定为标量或向量。rc 必须在区间 [0,1] 内。
如果 rc 是一个长度为 lr 的向量(其中 lr <= min(m,n)),则 R = sprandn(m,n,density,rc) 将 rc 作为其第一个 lr 奇异值,并且所有其他项均为零。在本例中,R 是由应用于包含给定奇异值的对角矩阵的随机平面旋转生成的。它具有大量拓扑和代数结构。
lr
lr <= min(m,n)
"double"
"single"
自 R2025a 起
输出数据类型,指定为 "double" 或 "single"。
输出矩阵,以稀疏正态分布随机矩阵形式返回。
sprandn 用于生成密度较小的大型矩阵,如果 m*n 很小或 density 很大,则生成的非零值会比要求的少得多。
sprandn
m*n
sprandn 使用与 rand、randi 和 randn 函数相同的随机数生成器。您可以使用 rng 函数控制此生成器。
rand
randi
randn
rng
全部展开
sprandn 函数支持 GPU 数组输入,但有以下用法说明和限制:
要在 GPU 上运行此函数并获得 gpuArray 输出,请使用以下任意语法:
gpuArray
R = sprandn(S),其中 S 是 gpuArray。
R = sprandn(S,typename),其中 S 是 gpuArray。 (自 R2025a 起)
R = sprandn(S,typename)
R = gpuArray.sprandn(S) .
R = gpuArray.sprandn(S)
R = gpuArray.sprandn(m,n,density) .
R = gpuArray.sprandn(m,n,density)
R = gpuArray.sprandn(___,typename),其中 typename 除了支持上述两种语法中的输入参量组合外,还指定数据类型。 (自 R2025a 起)
R = gpuArray.sprandn(___,typename)
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
用法说明和限制:
请参阅 distributed.sprandn (Parallel Computing Toolbox)。
distributed.sprandn
您可以通过将 typename 参量指定为 "double" 或 "single" 来指定输出数据类型。
sprand 和 sprandn 函数在生成随机稀疏矩阵时,如果输出中非零元素的数量大于行数,则性能会得到提高。
sprand
例如,生成一个非零元素的密度为 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
sprandsym
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处