将列表的各个元素相乘

时间:2014-10-30 13:25:38

标签: netlogo

我在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]

感谢。

2 个答案:

答案 0 :(得分:3)

完全误解了你的问题,抱歉!

您使用map走在正确的轨道上。 map可以将多个列表作为参数并调用多参数报告器,因此您可以执行以下操作:

(map * vec1 vec2)

或扩展版本:

(map [?1 * ?2] vec1 vec2)

如果其他人认为有用,请保持以下内容:

结帐reducereduce使用给定的报告者将列表的元素组合在一起。所以对于乘法:

reduce * [ 1 2 3 4 ]

reduce1 * 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]
相关问题