【发布时间】:2015-02-12 19:56:13
【问题描述】:
是否有一种简单的方法可以制作具有特定数量的非零条目的“随机”稀疏矩阵?
这是我的尝试:
r = randperm(n,m) % n = size of matrix, m = number of nonzeros in each column
H = sparse(r, r,1,n,n);
但是矩阵 H 在每列中并没有恰好 m 个非零值。例如,如果我用它来制作一个 100 x 100 矩阵,每列有 10 个非零,那么只有 10 列正好有 10 个 1。
我确信有一种简单的方法可以做到这一点,但我看不到。
【问题讨论】:
-
您想要每列中的特定数量的非零,还是整个矩阵中特定数量的非零就足够了?顺便说一句:我怀疑你的尝试会产生一个每列有多个条目的矩阵,因为它只会在对角线上的随机位置生成
1s。 -
@knedlsepp 理想情况下,矩阵在每列中都有特定数量的非零。矩阵 H = randweb(100,10) 有 955 个非零值,我想附上
spy图,但我的代表不够高。