我需要像MatLab的permute(A, order)
或Mathematica的Transpose[list, {n,...}]
这样的Clojure向量(向量的......)。
交换第一维和第二维非常简单:(apply mapv vector x)
但是我想要一个类似上面提到的函数的界面,我可以给出一个新的维度顺序,即(permute x [1 0])
就是那个换位, 3个维度的(permute x [0 1 2])
身份等。
Mathematica列表列表示例:
Array[a, {1, 2, 3}]
{{{a[1, 1, 1], a[1, 1, 2], a[1, 1, 3]},
{a[1, 2, 1], a[1, 2, 2], a[1, 2, 3]}}}
Transpose[%, {3, 2, 1}]
{{{a[1, 1, 1]}, {a[1, 2, 1]}},
{{a[1, 1, 2]}, {a[1, 2, 2]}},
{{a[1, 1, 3]}, {a[1, 2, 3]}}}
现有的图书馆当然是最好的,但任何指针都会受到赞赏。 数值库通常只包装一维数组并调整偏移量,但我想要实际的列表。