Netlogo 将列表中的单个元素相乘
我在Netlogo中有一个列表Netlogo 将列表中的单个元素相乘,netlogo,Netlogo,我在Netlogo中有一个列表 let your-vec list xcor ycor 我希望将第一个元素乘以a,第二个元素乘以b 我可以使用map实现两者的混合 set new-vec map [ ? * a ] new-vec 但我不知道NetLogo中的每个乘法方法 例如: 向量-[x1-x2] 多重化向量[AB] 所需结果-[a*x1 b*x2] 谢谢。完全误解了你的问题,对不起 使用地图,您走在正确的轨道上map可以将多个列表作为参数并调用多参数报告器,因此您可以执行以下操作:
let your-vec list xcor ycor
我希望将第一个元素乘以a,第二个元素乘以b
我可以使用map实现两者的混合
set new-vec map [ ? * a ] new-vec
但我不知道NetLogo中的每个乘法方法
例如:
向量-[x1-x2]
多重化向量[AB]
所需结果-[a*x1 b*x2]
谢谢。完全误解了你的问题,对不起 使用
地图
,您走在正确的轨道上map
可以将多个列表作为参数并调用多参数报告器,因此您可以执行以下操作:
(map * vec1 vec2)
或扩展版本:
(map [?1 * ?2] vec1 vec2)
如果其他人觉得有用,请保留以下内容:
退房reduce
使用给定的报告器将列表的元素组合在一起。所以对于乘法:
reduce * [ 1 2 3 4 ]
reduce
将执行1*2
,然后是该*3
的结果,然后是该*4
的结果。所以你得到了((1*2)*3)*4)
。在您的情况下,您可以像reduce*您的vec
那样使用它
也就是说,因为你只需要处理二维向量,你就可以
first your-vec * last your-vec
同样。可以通过以下方式实现:
“替换项目”
请检查上面的例子,这使它更清楚。我不确定你的代码是否在通信中。我想你可能一直在试图回答另一个问题。这似乎不相关。如果是这样的话,你可以删除这个答案。如果我不在替换项前使用show,它会起作用吗?一般来说,在大型程序中,我们如何替换列表中的项目。谢谢
show replace-item 2 [2 7 4 5] 15
=> [2 7 15 5]