如何将矩阵的n个元素与NetLogo中的数字相乘?

如何将矩阵的n个元素与NetLogo中的数字相乘?,netlogo,Netlogo,我有一个矩阵m,我想有一个用户定义的函数,它允许我控制乘以一个值的元素 函数matrix:set and report看起来很有希望,但我不确定如何为多个元素实现这一功能 例如,我想将矩阵的前3个元素乘以-1,从这里开始: let m matrix:from-row-list [1 2 3 4 5 6] print m 为此: let n matrix:from-row-list [-1 -2 -3 4 5 6] 使用matrix:set and report您确实非常接

我有一个矩阵m,我想有一个用户定义的函数,它允许我控制乘以一个值的元素

函数
matrix:set and report
看起来很有希望,但我不确定如何为多个元素实现这一功能

例如,我想将矩阵的前3个元素乘以-1,从这里开始:

   let m matrix:from-row-list [1 2 3 4 5 6]
    print m
为此:

   let n matrix:from-row-list [-1 -2 -3 4 5 6]

使用
matrix:set and report
您确实非常接近解决方案。请检查示例,我希望这就是您所寻找的。报告功能将矩阵作为输入。然后指定行,然后指定要开始乘法的索引,在哪里结束乘法,最后是乘法器

Extensions [
  matrix
]

to test
  let m matrix:from-row-list [ [1 2 3 4 5 6] [1 2 3 4 5 6] ]
  print (word "original matrix "  m)
  print (word "modified matrix "  matrix-row-manipulation m 0 0 3 -1)

end

to-report matrix-row-manipulation [matrix row columen-index-start columen-index-end multiplier]

  let index (range columen-index-start columen-index-end 1)

  foreach index [ i ->
    set matrix matrix:set-and-report matrix row i (matrix:get matrix row i * multiplier )

  ]

  report matrix


end
这将返回给您:

observer> test
original matrix {{matrix:  [ [ 1 2 3 4 5 6 ][ 1 2 3 4 5 6 ] ]}}
modified matrix {{matrix:  [ [ -1 -2 -3 4 5 6 ][ 1 2 3 4 5 6 ] ]}}