从NetLogo中的有界正态分布中选择值 [英] Selecting values from bounded normal distribution in NetLogo

查看:88
本文介绍了从NetLogo中的有界正态分布中选择值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试让NetLogo根据stackoverflow中上一个问题的建议从有界随机正态分布中提取值

I'm trying to have NetLogo draw values from a bounded random normal distribution following the recommendation in a previous question in stackoverflow

NetLogo :如何确保变量保持在定义的范围内?

具体来说,我要模型创建一个圆形的原始范围,该范围根据经验数据而变化

Specifically I'm asking the model to create a circular home range that varies in size according to empirical data

set homerange patches in-radius ((sqrt (( random-normal-in-bounds [ 54.4 35.8 19 151 ] * 1000000)/ pi))/ 100)

to-report random-normal-in-bounds [mid dev mmin mmax]
  let result random-normal mid dev
  if result < mmin or result > mmax
    [ report random-normal-in-bounds mid dev mmin mmax ]
  report result
end

但是,我一直收到错误消息,即随机正态边界"需要4个输入.我敢肯定我在做些愚蠢的事情,但对我来说好像是4个输入(54.4、35.8、19、151).关于我在做什么错的任何建议吗?预先感谢!

However I keep getting the error that random-normal-in-bounds expected 4 inputs. I'm sure it's something silly I'm doing but it looks like 4 inputs (54.4, 35.8, 19, 151) to me. Any suggestions on what I'm doing wrong? Thanks in advance!

推荐答案

我认为您的错误是由[]引起的,您不需要这些括号.

I think your error is caused by [] you don't need these brackets.

更新:

to test
clear-all
let homerange  nobody
let radius sqrt (( random-normal-in-bounds  54.4 35.8 19 151  * 1000000)/ pi) / 100 
crt 1 [
set homerange  patches in-radius radius
]
ask homerange  [set pcolor violet]
end
to-report random-normal-in-bounds [mid dev mmin mmax]
  let result random-normal mid dev
  if result < mmin or result > mmax
    [ report random-normal-in-bounds mid dev mmin mmax ]
  report result
end

这篇关于从NetLogo中的有界正态分布中选择值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆