Умножение списков списков в netlogo - PullRequest
1 голос
/ 14 июля 2020

У меня есть два разных списка (list1 и list2), например:

list1  = [ [a1 a2 a2] 
           [b1 b2 b3] ]

list2  = [ [c1 c2 c3] 
           [d1 d2 d3] ]

Я хотел бы умножить списки следующим образом, чтобы создать новый list3, чтобы .

list3 = [ [a1\*c1  a2\*c2  a3\*c3] 
          [b1\*d1  b2\*d2  b3\*d3]]

Я мог бы написать al oop, который выполняет итерацию по каждому элементу, однако я думаю, что может быть лучший способ каким-то образом использовать функцию карты в netlo go.

Спасибо за ответы!

1 Ответ

1 голос
/ 14 июля 2020

Не уверен, что это ужасно элегантно, но двойная карта позаботится о произвольном количестве списков списков.

to test
  let list1 [ [2 6 12] [20 30 42] ]
  let list2 [ [1 2 3] [4 5 6] ]
  let list3 (map [[x1 x2] -> (map [[y1 y2] -> y1 / y2] x1 x2) ] list1 list2)
  show list3
end
...