【发布时间】:2022-01-06 17:15:42
【问题描述】:
我有一个 10 位数字的向量“原始”。现在我想创建基于“原始”的矢量“适应”。 'adapted' 应该在同一位置从 'original' 中取 n 个大于 0 的随机值,并用 0 填充其余的值,例如:
原始 = [2 3 6 2 0 5 7 2 4 8] 适应 = [2 0 0 0 0 5 0 2 0 0]
to go
let n 3
let vector-dimension 10
let original []
repeat vector-dimension
[set original lput random 10 original]
print original
let adapted []
while [sum (map [ [v1] -> ifelse-value (v1 > 0) [1] [0] ] (adapted)) != n]
[set adapted (map [ [v1] -> ifelse-value ( (vector-dimension / n) * (100 / vector-dimension) > random-float 100) [v1] [0] ] (original)) ]
print adapted
end
此代码有效,但速度很慢。我怎样才能更快地做到这一点?
【问题讨论】:
标签: netlogo