在矩阵中移动位置

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]

现在你可以只用列表记账,这样就容易多了。

即使(出于某种原因您没有说明)您在其他地方确实需要矩阵运算,您几乎肯定应该使用列表来描述您描述的簿记,然后在必要时进行转换。