我正在NetLogo中开发一个模拟,最终将有多个排列。最后,我将有Sim1.nlogo,Sim2.nlogo,Sim3.nlogo,等等,所有这些都包括libsim.nls
我想知道的是,如果我在libsim.nls中有一个函数在除一个以外的所有模型中都相同,我可以在不同的模型中重载它,还是必须在每个排列中手动复制代码 你想要的东西是不可能的。但您也不需要在所有模型中重复代码
我建议采用以下方法。在libsim.nls中,为标准实现指定一个标准名称,如foo-standard。然后在Sim1.n
我正在尝试用netlogo为Nxt brick编写一个扩展。为了连接砖块,我使用了Lejos。我的颜色传感器有问题。我想写一个简单的方法,返回传感器颜色作为一个数字,如黄色:1,红色:2等,但传感器电机总是返回不同的RGB颜色在同一个表面上。例如,我把它放在一张黄色的纸上,rgb的颜色是:[236 189 104],[247 202 108]。。如果它返回相同表面颜色的唯一RGB编号,我会根据RGB颜色范围对它们进行分类,并为每种颜色提供唯一编号。你知道我怎么做吗?而且,它不会在不同的表面上运行
基本上,我的问题是嵌套循环如何在netlogo中工作。我尝试过在彼此之间嵌套两个while循环,但内部的一个似乎没有正常工作(与其他语言中的工作方式相同)。但是,如果我使用两个不同的循环,它将按预期工作。netlogo中的循环工作方式与汇编语言中的标签类似,以便在标记时跳转到第一个循环
我问这个问题的原因是因为我一直在互相使用不同类型的循环,或者为内部循环创建一个过程,这会损害代码的可读性。下面是一个示例,我正在读取一个以制表符分隔的文件,以便为修补程序分配值:
file-open "map2.
我想在NetLogo中设置turtles,每个补丁从最小xcor到最大xcor均匀分布。目前,很清楚的是,海龟可以用随机xcor和随机ycor来创造。请帮助。尝试使用sprout告诉补丁程序直接在上面创建一只海龟。例如:
询问补丁[萌芽1]
将在每个补丁上创建一只海龟。如果您只想在世界的一部分地区执行此操作,您可以使用和来限制修补程序:
询问具有[-6
如何在Netlogo中继续中断模拟?是否可以从备份继续模拟 是的,使用and或文件菜单项“导出世界”和“导入世界”的功能完全相同。中断模拟是什么意思?它是怎么被打断的?你说的备份是什么意思?非常感谢赛斯。要从模型停止的地方继续运行模型,我不明白我必须在代码中添加“导出世界”以定期备份模拟。我必须在询问海龟[]中输入“导出世界”如下:询问海龟[导出世界……]还是在我的代码开头?非常感谢您的帮助。您可以随时拨打export world,但通常的做法是在go过程结束后,在勾选之后。非常感谢Seth。如
我想问一下如何把海龟搬到他们的邻居家。(房屋为六角单元)
我试着去做,但给了我一个错误
;;;;;;;;;;;;;建造房屋或六角格
to setup-cells
set-default-shape cells "hex"
ask patches
[ sprout-cells 1
[ set color grey
set size 1.2
;; shift even columns down
if pxcor mod 2 = 0
[ set ycor yc
如何计算图中规定的上述角度。
补丁是事先知道的。
我不会为它编写代码,但这里有一个通用配方:
通过和加/减0.5,找到面片的四个角点
通过使用查找最近的两个角
通过使用找到这两点中每一点的标题
使用计算这两个标题之间的差异
to-report calculate-turtles-in-cone2
let px [pxcor] of patch-goal
let py [pycor] of patch-goal
; show [pxcor] of patch-goal
set
我想用半径或距离来定义邻居。到目前为止,我的解决方案是:
turtles-own [
my-neighbors
num-neighbors]
to setup
ca
crt 100 [
move-to one-of patches with [ not any? turtles-here ]
set my-neighbors (other turtles) in-radius 3
set num-neighbors count my-neighbors
]
end
问
我有一个有很多随机成分的模拟,所以我想运行很多模拟并平均结果(结果由一个叫做score的变量决定)
您将如何在Netlogo中执行此操作
目前我正在开发一个将结果导出到csv的程序,然后我计划使用python/excel对其进行平均。我不喜欢这个,因为我想运行100多个模拟(所以会有100多个文件)。。。我希望有更好的解决办法
编辑或实现我所描述的内容(我必须重新学习足够的python/vba来解决这个问题,所以这需要一些时间)如果您使用
在您的实验定义中,使用这些报告者将分数放入测量运行文本框
尊敬的Netlogo社区:
我希望生成一组数字的子集。
例如,如果一个集合是[1 2 3 4 5],那么子集将是[1 2][1 3][1 4][1 5][1 2 3][1 2 4]。。。。。。。我知道在java中使用位操作可以很容易地生成。但我不知道如何在Netlogo中实现。我注定了。任何帮助都将不胜感激。谢谢这是使用递归最容易解决的问题:
to-report subsets [xs]
if empty? xs [ report [[]] ]
let recurse subsets b
我想追踪我的乌龟的行为。海龟自己的变量之一是[energy]。我想观察这个变量是如何随时间变化的。如果我问
询问海龟0[设置标签能量]
在代码中或通过观察者,我只达到实际的能量值。使用go once按钮,标签保持不变,即使我的能量值发生变化
请问,我如何更新每个刻度的[能量]值标签?更改plabel值也有同样的问题。谢谢大家! 这是一个如何做到这一点的示例。我创造了一只简单的乌龟,它可以随意行走并更新它的能量水平。中间的补丁显示海龟0的能量水平为格子:
turtles-own [energ
我使用的是Windows 7-64位。我正在用NetLogo创建一个模型,它需要一个大约500x500的世界。所以我需要很多内存。我需要增加内存限制。有人能帮我吗?谢谢。通过在谷歌上快速搜索,我发现这可能正是您想要的:
是的,特别是64位窗口,请参见
如何为海龟自己的变量进行行为空间实验?
另外,如何在输出框中以表格形式生成输出?如果您只需要turtles自身变量的平均值、总和等,请使用表格
mean [size] of turtles
如果你想要全部的话,那就有点麻烦了,我用的是
[(word who "," size) ] of turtles
它生成一个分类列表。我希望其他人有一个更干净的解决方案,但我担心这是最好的 这是两个问题。你想要海龟变量的总和或平均值还是变量本身?
我创建了一个代理网络,每个代理都有GDP值和GDP增长率。代理通过无向链接互连
我已经做了一个倒计时,每200点随机分配一个“休克状态”给10名特工。当一个代理受到冲击时,它会得到“处于危机中”的价值“正确”,其GDP增长率随之发生变化
但是,我想添加第二个触发器。我需要“处于危机中”的特工false“检查他们的链接邻居,看看他们中是否有“处于危机中”?=是的。如果他们与危机中真实的代理人有关联,那么他们应该检查自己的GDP是否小于“危机中”关联州GDP的一半是的。如果它更小,那么代理将自己的“
有没有办法在NetLogo Web中保存游戏数据?
在我的NetLogo模型中,所有重要数据都写入输出,输出的内容在每个游戏结束时自动导出。不幸的是,我在NetLogo Web主页上看到,导出输出原语当前未实现。还有其他方法保存游戏数据吗?
瞧
在Netlogo 6.0.1中打开Netlogo 4.1模型时,我收到一条错误消息。它似乎在图形用户界面元素(如按钮)方面存在问题:
单击“确定”后,我会看到一个空白屏幕:
以下是Netlogo 4.1中模型的外观(显示应显示的内容:
我查看了,但没有找到任何相关信息。我确信我可以将Netlogo 4.1和Netlogo 6.0.1并排放置,复制/粘贴代码(带有新版更新)从Netlogo 4.1转换到Netlogo 6.0.1,然后在Netlogo 6.0.1中重新创建GUI组件。但是,我
如果我有这样一种情况,大约1000只黑海龟在给定的时间内以随机的角度和步幅散布在整个netlogo世界。每只海龟在分散过程中的每一个时间步都被分配一个随机概率,如果这个数字超过给定海龟的给定阈值,它会将颜色变为红色并停止移动。此外,黑海龟(仍在移动)碰巧在红海龟(停止/固定)的区域内移动,它们的颜色也会变为灰色并固定(停止移动)。最后,其他在灰色或红色海龟(停止/固定)区域内移动的黑海龟(仍在移动)也会将颜色更改为灰色并固定(停止移动)
我的问题是关于何时达到模拟持续时间的后处理问题。我如何确定
我想模拟森林中不同树种之间的相互作用。为此,我还必须模拟森林的生长/蔓延。
在这方面,我面临以下两个问题:
我想让这些树达到一个最低年龄,从这个年龄开始,它们每年可以孵化一棵新树。但我只知道如何让它们每20年繁殖一次
还有一个固定的年龄,在这个年龄,树木被砍掉。问题是,当达到这个年龄时,同一品种的所有树木都会被砍掉,即使它们的年龄实际上应该小于它们的收获年龄
以下是我的代码的相关部分:
to go
ask oaks [set age ticks]
end
to set-harvest-age
我是一名编码初学者。我很高兴得到建设性的批评,不仅是对我的问题,而且对我描述问题的方式
我对NetLogo中的此代码有问题:
patches-own[grass]
to setup
clear-all
ask one-of patches ;;pic a random patch as center of the pasture
[set grass 1] ;;and plant grass on it
ask pat
我在Netlogo中有两种类型的代理(公司和工人),它们通过一个公共标识符连接,但这是一个代理属性(称为公司ID和公司ID)
(适用于工人)。
我感兴趣的是要求公司通过执行“询问公司”来显示其劳动力,要求他们显示所有工人的计数,以便工人的“firmID”变量等于公司的“ID”变量,如下所述:
我曾试图要求公司统计所有工人,使工人ID与公司ID相等,但这在ask程序中不起作用。奇怪的是,如果我一个接一个地尝试,它确实有效
一些可复制的玩具代码:
breed [Firms firm]
breed [
我想了解如何将两个列表中的一个映射到一个。其中两个列表的长度相同。
例如
列表A=[海龟-0海龟-3海龟-5]
列表B=[Node-27 Node-21 Node-29]
我想要地图,
海龟-0到节点-27
龟-3到节点-21
龟-5到节点-29
并将每个节点存储在自己的变量travel to中。
我觉得你可以通过map或foreach函数来实现这一点,但不幸的是我没有成功。任何想法,谢谢也许这里的专业人士会想出一个更好的解决方案,但是下面的代码应该可以工作。
实际上,您可以使用foreach或
跟踪乌龟的踪迹并观察它是很困难的,但我遇到了一个问题如果错误消息显示“预期结束”,则表示您试图启动一个新的过程(使用到),而不结束上一个过程。如果上一个过程有结束,这通常意味着括号中有错误,NetLogo无法识别结束。在你的情况下,你有ask turtles own而不是ask turtlesHi@manicchxld,你能把你的代码粘贴到你的问题中而不是图片中吗。谢谢!
如上所述,我正在尝试实现一个反应式无线网络,我已经使用海龟之间的链接建立了网络,但是我在如何生成路由表方面遇到了问题。目前,我尝试了列表和“表格”,但netlogo表格似乎比我最初想象的表格更像字典。有人能帮我做点什么吗?总体目标是让每个海龟与其邻居创建一个表,然后将其逐出,这样每个海龟最终都会合并表,直到创建整个网络拓扑
谢谢你,如果这是一个愚蠢的问题,请道歉你的问题太笼统了,除了非常笼统的建议之外,很难提供任何东西。通过一次编写一个大型程序,您可能试图一次解决太多的问题。我建议您找到一些您试
如何在海龟出生后立即更换特定的旗帜
如何交替标记使用原始单元格0创建的海龟?
例如,第一只出生的乌龟是旗子1,下一只出生的乌龟是旗子2,下一只出生的乌龟是旗子1,下一只出生的乌龟是旗子2…以此类推。
e、 例如,ID编号1=标志1,ID编号2=标志2,ID编号3=标志1,ID编号4=标志2,ID编号5=标志1,ID编号6=标志2
我已经编写了下面的示例代码,但尚未完成,也没有任何想法:
globals [ idnumber flag1 flag2 ]
to setup
clear-all
我是NetLogo的新手,我只想让我的乌龟在街上移动(补丁为pcolor=grey),但我不知道怎么做。我的模型中有一条街道,海龟应该在上面移动。我已经看过libarry的模型了,但是找不到有用的东西
这是我的密码:
extensions [gis]
globals [streets-dataset
roads]
to setup
clear-all
gis:load-coordinate-system (word "data/" projection &q
我试着让每个点跟随它们的等效质心,这是3个不同点的平均值。但当我设置为7个点(数字==7)时,我只看到3个质心,以此类推。质心的数量与点的数量不匹配,当我按下go键时,我会收到以下错误消息:
error while dot 4 running CENTROID
called by procedure MOVE-DOTS
called by procedure GO
called by Button 'go'
作为一个观察者,我输入质心0,它也会抛出错误信息。我应该做什么来让它工作?
想象一下,我有一只同一品种的乌龟,它的位置如下图所示,被一块空白区域隔开
1234 56 78 9 <br/>
AAAA AA AA A
下面是我用来杀死turle的代码:
ask virus-on patch in_xcor in_ycor [
ask link-neighbors [die]
die
]
有一件事是肯定的,那就是你不需要经历在你要杀死的海龟之间建立联系的麻烦。你的主要问题是确定哪些海龟需要死亡,这可以通过一个递归过程来完成:你有一只需要死
我有一个NetLogo模型,要求海龟记录从a点到B点的行驶距离
重要的是,距离由海龟测量,而不是简单地计算两点之间的距离
我认为像海龟自己的东西就足以存储它所走过的距离了?我假设你不想只使用从原点开始的距离,因为你的海龟可能没有直线旅行
在任何情况下,都可以使用turtles-own变量。下面是一个完整的示例:
turtles-own [
distance-traveled
]
to travel
clear-all
create-turtles 5
repeat 100 [
是否有任何方法可以在netlogo中将错误作为pop UO抛出。比如说,我有两个按钮,如果我按下第二个按钮而没有单击第一个按钮来设置系统,那么我会在弹出窗口中看到一个错误,说你不能不按下第一个按钮就运行。确实有!退房你这样使用它:
>代码>错误“某事出了极大的错误!”你也可以考虑。如果一个按钮被按下,你能告诉我如何对这个情况进行编码吗?另外,请详细描述你正在尝试做的事情,并描述你尝试过的事情。
我想问我是否想让雌性在X个蜱之后孵化。
雌雄在3月或4月交配,1月或2月分娩
一开始,我制定了一个规则,他们在一月和二月交配并生孩子
代码
to-report parents-here?
report any? turtles-here with [gender = "male"]
and
any? turtles-here with [gender = "female"]
end
to go
if ticks mod 12 <= 2 [
ask patche
如何计算海龟左侧或右侧的斑块数?我知道下面的代码是错误的,但有些事情是这样的。谢谢
count patches with [pcolor = green] [pxcor < xcor]
使用[pcolor=green][pxcor
在为特定生物体编写相关随机游动代码(根据包装的柯西分布)时,我在概念上和实践上都陷入了某种僵局。在景观中,生物体的运动将根据其位置(栖息地内、栖息地外和边缘边界)确定。相关随机游动代码如下所示,其中rho和步长将根据生物体是在栖息地内还是在栖息地外确定
set heading ((heading * pi / 180 + 2 * atan (( (1 - rho) / (1 + rho)
) * tan(pi * ( random-float 1 - 0.5 ))) 1)) * 180 /
我在NetLogo中有一个模型,它模拟昆虫(海龟)在植物(斑块)上吃草。每个补丁都有一个称为资源的变量,每当海龟访问它时,它就会耗尽资源。在行为空间中运行模型时,我想报告每个补丁的资源和补丁的坐标
到目前为止,我已经:
to-report damageToPatches
foreach sort patches [ ask patches [
report resources ]]
end
这显然不起作用,这可能很简单,但我正在努力想出一个解决方案。它可能涉及在每个时间步将每个修
有人尝试过使用最新的统计扩展1.3.1吗?我已经试过了,但是当我解压文件时,没有stats.jar或stats.jar.gz文件,就像1.2.1版本一样。如果你用过它,你是如何让它工作的
我需要它,因为它有一个beta发行版功能,而且比R扩展版(我有一个锁定的系统)更容易启动运行。看起来JAR还没有与当前可用的版本打包在一起
这很可能是作者的一个简单疏忽。我已经开门了
同时,您仍然可以查看或。版本1.3.1中缺少stats.jar文件。现在有了一个新版本v1.3.2,它包含stats.jar
我有三只不同的海龟:红色、白色和绿色。我试着让这些乌龟成双成对(就像恋爱中的人一样),然后再分开。当一只红海龟与一只绿海龟或白海龟结合在一起时,我希望补丁的颜色有时会随机改变颜色,但由于某些原因,补丁的颜色进程不起作用
to go
ask turtles
[ if coupled? = true
[ set couple-length couple-length + 1 ] ]
ask turtles
[ if coupled? = false
我正在建立一个捕食模型的相互作用
我有一个猎物,它会根据当前的状态改变颜色。我工作的状态是“隐藏”,猎物是黄色的。我有一个捕食者在评估它是否能追逐猎物,我试图通过评估猎物的颜色来实现这一点,但它似乎不起作用
to chase
let target min-one-of prey [distance myself]
output-print target
ifelse target != yellow
[
output-print "chase"
]
[
我正在使用以下条件来发芽一只新海龟,它是有效的
ask one-of patches with [distancexy 0 0 < 30]
[ if (random-float 1 < (beta * pm * 1000)) [sprout-parties 1 [initialize-party] ]]
使用[distancexy 0
是否有一种方法可以将输入传递给netlogo过程,从而可以在过程中修改输入值?例如:
to test
let value 200
test2 value
print value
end
to test2 [v]
set v v + 1
end
如果你运行这个,它将输出200。我想以某种方式修改它(不使用全局变量,也不使用报告程序),以获得输出201。您可以使用可变对象,如数组或表
extensions [table array]
to test
let _a array
我一直在玩漫反射关键字
考虑以下3x3世界,其中左上角有3个化学梯度,其他地方没有化学梯度。此外,边缘没有包裹
[3 0 0 ]
[0 0 0 ]
[0 0 0 ]
如果我的扩散率为.5,我希望梯度的3(梯度)*.5(扩散率)/3(#邻域)=.5将被赋予它的3个邻域。我还希望原来的补丁还有1.5个单位
但是,当我运行漫反射代码时,似乎梯度的3(梯度)*.5(扩散率)/8(#邻域)=.1875被设置为3个邻域。原来的补丁还有2.4375个剩余单位,而不是原来渐变的0.5。这是怎么回事
我正在尝试制作一个炮塔,它可以向8个方向发射8发子弹。在我的命令中,它们都以标题0生成。如何使它们朝向正确的方向。每只海龟的脸都应该是45的倍数。就像在观察者上下文中使用cro命令一样
to fire-tacks
ask ttacks with [alive?] [
set attackSpeed attackSpeed + .5
if any? turtles with [is-bloon?] in-radius 5 and attackSpeed >= 12
[set attack
我必须用netlogo测试不同的算法。我有一个不同的Netlogo模型来模拟每个算法
我想使用行为空间工具对每个模型运行一系列模拟,并使用random seed复制所有模型(算法)随机发生的事件。
因此,我将为每种方法设置一个行为空间实验。在实验设置中,我将设置多次重复来计算结果的不同样本
问题是,设置一个随机种子,例如在模型的设置过程中,将为行为空间的每个实验产生重复的事件,但是,它将在所有重复的实验中产生相同的结果
我需要的是运行模型的一系列模拟,仅在第一次模拟中设置随机种子,以便通过使用N
我想做这样的事
ask turtle 0 [if <some turtle 0 property> [ask turtles [ <do something> ]]
一定有更好的办法,但我一直想不起来
有什么建议吗?我忘了的
if [the-property?] of turtle 0 [ask turtles [ <do something> ]]
如果海龟0[询问海龟[]的[属性?]
我的错误是,如果没有0,就无法确定属性的值。但是的让我来做
if
我使用的是Netlogo v6.0.4,当我试图从堆栈溢出中找到的答案运行示例代码时,会收到以下错误消息
没有名字吗?已定义
在回答中,建议使用以下netlogo代码作为回答:
to-report split [ string delim ]
report reduce [
ifelse-value (?2 = delim)
[ lput "" ?1 ]
[ lput word last ?1 ?2 but-last ?1 ]
] fp
如果有两只或更多的海龟,我如何找到最常见的颜色
如果可能的话,我想这样做:
set my_color [mostfrequentcolor] of my_agentset
使用此示例设置:
to setup
ca
crt 10 [
set color one-of [ blue green red yellow ]
]
print most-frequent-color turtles
reset-ticks
end
您可以使用报告过程来完成此操作-注释中的详细
我创建了一个双向链接的海龟网络
ask turtles [
create-links-with other turtles in-radius 1 ]
每只海龟有两个参数alpha和beta
现在,我想让每只海龟将alpha=1设为当且仅当至少有一只海龟的beta=1。否则,我想要求每个海龟设置alpha=0,当且仅当与他相关联的所有海龟的beta=0。原语ALL?检查代理集的所有成员是否满足某些条件。合适的代理集是链接邻居,即链接海龟
ask turtl
我有一个在任何地方都找不到答案的问题,我的代码如下:
exemple-own[energy]
ask exemple[
let me one-of exemple-on patch-ahead 1
set [energy] of me [energy] of me + energy
]
“这不是您可以使用的设置”
我使用的设置正确吗?您只能从代理的角度更改代理属性的值,并且可以使用询问来更改透视。我想你想要这个:
exemple-own[energy]
ask ex
我正在尝试在Netlogo中建立4个教室,学生将根据随机进入时间逐个进入4个教室。因此,在我的go程序中,我必须使用多次(2次)重置计时器,让学生一个接一个地进入4个教室。但是一个教室的学生都在0分钟内进入。为什么会这样
to go
reset-timer
tick
create-students-classroom
move-students
reset-timer
move-studentsB
reset-timer
move-studentsC
我正在与一个关于电动汽车充电行为的NetLogo模型合作。所有(500)个代理监控他们的我的充电需求,我想知道当我改变现行政策干预时,这种紧急行为会发生什么(在这种情况下是电费)。我试图显示充电特性的变化,如充电持续时间、充电功率等
及时在代理的我的收费需求上创建数据的最佳方式是什么
现在,我正在使用以下代码将其所有数据绘制在一个图形中:
ask adopters
[ create-temporary-plot-pen (word-who)
set-plot-pen-color col
我有一个相当简单的问题:有没有一种基于补丁变量定义补丁集的方法?在我的模型中,我有一大组组成食物对象的面片,食物是一个面片变量。我让海龟在发现自己在食物上时改变颜色,但我之前已经手动定义了它们改变颜色的补丁集。然而,我想调整食物的位置,我不想检查和重新定义所有的食物补丁。谢谢
to setup-food
if (distancexy (0.8 * min-pxcor) (0.8 * min-pycor)) < 5
[set food 5
if food > 0
我有一个小的模拟,僵尸和人类互相争斗。下面的代码是创建我的僵尸的代码
create-zombies 5 [
setxy random-xcor random-ycor
set color black
set size 2
set shape "person"
set zombies_speed 0.5
]
这段代码是用来将人类变成僵尸的代码。convert-h变量是一个全局变量,我将其设置为=到conve
1 2 3 4 5 6 ...
下一页 最后一页 共 41 页