在矩阵中移动位置
shift position in matrix
我有一个 n x 1
矩阵。我正在尝试找到一种方法 "shift" 所有元素的位置(丢失最后一个元素),然后以这种方式在位置 0,0 添加一个元素:
来自
[[ 10 ]
[ 5 ]
[ 2 ]
[ 3 ]
[ 1 ]
[ 5 ]]
to(在位置0,0添加一个新元素2
)
[[ 2 ]
[ 10 ]
[ 5 ]
[ 2 ]
[ 3 ]
[ 1 ]]
我非常接近解决方案,但我不知道如何将元素添加到嵌套列表。
;initial matrix
set mymatrix matrix:from-column-list [[10 5 2 3 1 5]]
;temp
let list matrix:to-column-list mymatrix
let tmplist matrix:to-column-list states
; ERROR here: the result of fput is [2[10 5 2 3 1 5]]
set tmplist fput 2 tmplist
;new matrix
matrix:set-column mymatrix 0 tmplist
编辑:我意识到对于我的需要来说,矩阵确实有点矫枉过正。我解决了切换到纯 netlogo 列表并在 map-reduce 中开展业务的问题。
如果您只需要基本为一维的对象的元素乘法,只需使用 map
。
示例:(map * [1 2] [3 4])
报告 [3 8]
。
现在你可以只用列表记账,这样就容易多了。
即使(出于某种原因您没有说明)您在其他地方确实需要矩阵运算,您几乎肯定应该使用列表来描述您描述的簿记,然后在必要时进行转换。
我有一个 n x 1
矩阵。我正在尝试找到一种方法 "shift" 所有元素的位置(丢失最后一个元素),然后以这种方式在位置 0,0 添加一个元素:
来自
[[ 10 ]
[ 5 ]
[ 2 ]
[ 3 ]
[ 1 ]
[ 5 ]]
to(在位置0,0添加一个新元素2
)
[[ 2 ]
[ 10 ]
[ 5 ]
[ 2 ]
[ 3 ]
[ 1 ]]
我非常接近解决方案,但我不知道如何将元素添加到嵌套列表。
;initial matrix
set mymatrix matrix:from-column-list [[10 5 2 3 1 5]]
;temp
let list matrix:to-column-list mymatrix
let tmplist matrix:to-column-list states
; ERROR here: the result of fput is [2[10 5 2 3 1 5]]
set tmplist fput 2 tmplist
;new matrix
matrix:set-column mymatrix 0 tmplist
编辑:我意识到对于我的需要来说,矩阵确实有点矫枉过正。我解决了切换到纯 netlogo 列表并在 map-reduce 中开展业务的问题。
如果您只需要基本为一维的对象的元素乘法,只需使用 map
。
示例:(map * [1 2] [3 4])
报告 [3 8]
。
现在你可以只用列表记账,这样就容易多了。
即使(出于某种原因您没有说明)您在其他地方确实需要矩阵运算,您几乎肯定应该使用列表来描述您描述的簿记,然后在必要时进行转换。