我试图在零的矩阵中有效地生成随机分散但数量有限的1。
假设我有一个10x10的零矩阵(zeros(10)
),我想随机放置十个1,所以它看起来像:
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0
1 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 1 0 0
0 0 0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
如何在没有for循环且没有手动插入每个位置的情况下执行此操作(此示例是我真实问题的小得多的版本)?
我的代码到目前为止:
% Generate zeros
M = zeros(10)
% Generate random indices
Rands = [randsample(10, 10) randsample(10, 10)]
其中第一列是行索引而第二列是列索引。
现在我显然不能将这些索引放到M
的行和列索引中,如下所示:
M(Rands(:,1), Rands(:,2)) = 1
我如何评估这些随机指数的变化?