我在Netlogo中有一个列表。
let your-vec list xcor ycor
我希望第一个元素乘以a和第二个元素b。
我可以使用map来实现两者的多重化。
set new-vec map [ ? * a ] new-vec
但我不知道NetLogo中的每个单独的乘法方法。
例如:
vec- [x1 x2]
muliptication vector [a b]
结果需要 - [a * x1 b * x2]
感谢。
答案 0 :(得分:3)
完全误解了你的问题,抱歉!
您使用map
走在正确的轨道上。 map
可以将多个列表作为参数并调用多参数报告器,因此您可以执行以下操作:
(map * vec1 vec2)
或扩展版本:
(map [?1 * ?2] vec1 vec2)
如果其他人认为有用,请保持以下内容:
结帐reduce
。 reduce
使用给定的报告者将列表的元素组合在一起。所以对于乘法:
reduce * [ 1 2 3 4 ]
reduce
将1 * 2
,然后是* 3
的结果,然后是* 4
的结果。所以你得到(((1 * 2) * 3) * 4)
。在您的情况下,您可以像reduce * your-vec
一样使用它。
那就是说,因为你刚刚使用二维向量,你可以做到
first your-vec * last your-vec
。
答案 1 :(得分:0)
可以实现: “替换项”
show replace-item 2 [2 7 4 5] 15
=> [2 7 15 5]