NetLogo设置阶段如何为两类Patch添加可调节增长率滑块?
NetLogo 0/1型Patch增长率设置修正方案
1. 添加滑块控件
在NetLogo界面的Controls面板添加滑块,参数设置如下:
- 变量名:
per-patches1 - 最小值:0(可按需调整范围)
- 最大值:200(可按需调整范围)
- 默认值:100(表示1型Patch增长率与0型一致)
- 标签:1型Patch相对0型的增长率百分比
2. 修正初始化代码
原代码中set growth语句存在语法错误,ptype是Patch的属性变量,不能以函数形式调用。以下是修正后的完整代码:
globals[] ; patches属性 patches-own [ id ptype growth ] ; turtles属性 turtles-own [ ttype previous-id ] to setup clear-all reset-ticks ask patches[ set pcolor white ; 按需分配ptype,示例为随机设置0或1,可替换为你的分配规则 set ptype one-of [0 1] ; 设定0型Patch的基准增长率,可根据模型需求修改数值 let base-growth 1 ; 根据ptype和滑块值设置增长率 set growth ifelse-value (ptype = 0) [ base-growth ] [ base-growth * per-patches1 / 100 ] ] end
逻辑说明
- 使用
ifelse-value分支处理两类Patch的增长率:- 0型Patch直接使用基准增长率
base-growth - 1型Patch的增长率为基准值 × 滑块百分比(滑块值除以100将百分比转为小数)
- 0型Patch直接使用基准增长率
- 若需求为「1型增长率比0型高X%」(如滑块设50代表1型是0型的150%),可将1型的growth修改为:
base-growth * (1 + per-patches1 / 100)
内容的提问来源于stack exchange,提问作者Fiammetta Brandajs
相关产品推荐
相关产品推荐

