2015-01-15 54 views
2

这是我的简单代码:A = randi([0,1],[500,500]) 这段代码给出矩阵A(500 * 500),表示所有元素都是0或1。随机矩阵在matlab中的特殊顺序

是任何方式,我可以订购的1这个元素的数量是7000

是否可以指导我吗?

回答

0

如果我正确理解你的问题,我不认为兰迪函数是从这里开始的方式。

我建议以下程序:

  1. 开始与500个* 500个元素的列表,设置为1 7000元,其余的0
  2. 随机排列在列表
  3. 元素的顺序
  4. 做一个500 * 500数组,其元素是列表

例如中的元素,下面的代码将工作:

A_init(1:7000) = 1; A_init(7001:500*500) = 0 % step 1 
A = A_init(randperm(length(A_init)))   % step 2 
A = reshape(A,[500,500])      % step 3 

关键是使用randperm,它会生成索引的随机排列。

来验证具有正确数量的元素:

num_ones = length(find(A==1))