首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Netlogo中设置括号和ifelse和let命令时出现问题

在Netlogo中设置括号和ifelse和let命令时出现问题
EN

Stack Overflow用户
提问于 2016-09-04 04:02:49
回答 1查看 162关注 0票数 1

我有问题的括号放置和ifelse和让命令在网络徽标。

我有很多关于斑块的不同条件--自己的(envi)和海龟自己的(生态位-选择,生态位范围)变量,这些变量决定了一个局部变量(多个),然后被用来确定繁殖的概率。

海龟有一个可变的生态位选择,如果这与补丁变量envi相匹配,则局部变量multi1。

如果生态位-opt != envi但envi在生态位-opt +-生态位范围内(海龟变量,整数范围为1- 3),则多= 0.8。

最后,如果envi是外部生态位-选择+-生态位范围,那么多= 0.2。

因此,局部变量“多重”可以是三个值(1,0.8或0.2)之一,然后与海龟自己的变量(特质-2)相乘,用来确定孵化发生的概率。

我的问题是,在代码行中:

代码语言:javascript
运行
复制
if random-float 100 < (multi * trait-2 * 100)

找出"nothing named“错误。我确信问题与我的括号放置有关,因为let创建了一个局部变量,但我不知道我是否需要添加更多的括号,或者只是移动我拥有的方括号。

代码语言:javascript
运行
复制
to go
   ask turtles [
   reproduce  
   ]
end

to reproduce  
  ifelse niche-opt = envi  
  [let multi 1] 
  [ifelse envi >= (niche-opt - niche-range) and envi <= (niche-opt + niche-range)
  [let multi 0.8]
  [let multi 0.2]
  ]
if random-float 100 < (multi * trait-2 * 100)
hatch 1 
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-04 13:16:24

使用ifelse-value可能最简单

代码语言:javascript
运行
复制
to reproduce  
  let multi ifelse-value (niche-opt = envi)[1] [
    ifelse-value (envi >= (niche-opt - niche-range) and envi <= (niche-opt + niche-range)) [0.8][0.2]
  ]
  if random-float 100 < (multi * trait-2 * 100) [hatch 1]
end

未测试.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39313446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档