如何将矩阵的n个元素与NetLogo中的数字相乘?
我有一个矩阵m,我想有一个用户定义的函数,它允许我控制乘以一个值的元素 函数如何将矩阵的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您确实非常接
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 ] ]}}