gpt4 book ai didi

MATLAB - 创建伪随机稀疏矩阵

转载 作者:行者123 更新时间:2023-12-04 00:30:58 28 4
gpt4 key购买 nike

是否有一种简单的方法来制作具有特定数量的非零条目的“随机”稀疏矩阵?

这是我的尝试:

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。

我确定有一种简单的方法可以做到这一点,但我看不到。

最佳答案

这将生成一个 100×100 矩阵,每列正好有十个 1:

n = 100;
m = 10;
nonzerosPerColumn = repmat(m, 1, n);
%%// Build vector of linear indices to nonzero entries
pos = cell2mat(arrayfun(@(i)randperm(n,nonzerosPerColumn(i))+(i-1)*n,1:n,'uni',0));
%%// Generate the matrix
M = reshape(sparse(pos,1,1,n*n,1),n,n);

关于MATLAB - 创建伪随机稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28486650/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com