使用randi(或其他东西)控制比例

  • 本文关键字:控制 randi 其他 使用 matlab
  • 更新时间 :
  • 英文 :


我有这行代码,它定义了所选区域内一定数量的代理

obj.agents = randi([0 1],obj.width, obj.height);

我想控制这个参数,这样我就有一定比例的0和1随机分布在区域内,比如0的30%和1的70%,反之亦然(所以它们仍然是随机分布的,但一个比另一个大(。

有什么相对简单的方法吗?

将其初始化为一的矩阵,然后用零替换随机的30%索引。

obj.agents = ones(obj.width, obj.height);
inds = randperm(obj.width*obj.height, 0.3*obj.width*obj.height);
obj.agents(inds) = 0;

注意事项:如果30%不是整数,则必须使用其中一个:ceilfloorroundfix;适合你需要的

相关内容

  • 没有找到相关文章

最新更新