2014-10-30 3 views
1

У меня есть список в Netlogo.Умножение отдельных элементов списка

let your-vec list xcor ycor 

Я хочу несколько элементов первого и второго элементов по b.

Я могу достичь muilpltipcation как с использованием карты.

set new-vec map [ ? * a ] new-vec 

Но я не знаю о каждой индивидуальной методологии умножения в NetLogo.

НАПРИМЕР:

vec- [x1 x2]

muliptication вектор [а Ь]

результат desired- [а * x1 * x2 Ь]

спасибо.

ответ

0

Может достигнуто: «заменить-пункт»

show replace-item 2 [2 7 4 5] 15 
=> [2 7 15 5] 
+0

Я думаю, вы, возможно, пытались ответить на другой вопрос. Это не кажется актуальным. Если это так, вы можете удалить этот ответ. –

+0

Если я не использую шоу перед заменой, это работает? Как правило, в большой программе, как заменить элемент в списке. Благодарю. – user1659936

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 

а.

+0

Пожалуйста, проверьте приведенный выше пример, который делает его более ясным. Я не уверен, соответствует ли ваш код его корреспонденции. –

Смежные вопросы