从长度为Array
的{{1}} arr
和List
轴lst
开始,在指定轴上求和的最佳方法是什么在k
?在lst
时,这与lst={1,2,...,m}
示例:
Nest[Total,arr,m]
然后arr = Array[a, {2, 3, 4}];
的维度为f[arr,{1}]
,{3,4}
的维度为f[arr,{2}]
,{2,4}
的维度为f[arr,{2,3}]
,{{1} }将有头{2}
和尺寸f[arr,{1,2,3}]
答案 0 :(得分:1)
Fold[Total[#, {#2}]&, arr, lst]
能做你想做的吗?
<强>更新强>
这个怎么样?
f[arr_, lst_] :=
Fold[Total[#, {#2}] &, arr, Sort[lst, Greater]]
(以及@belisarius的帽子提示=))
答案 1 :(得分:0)
这样做你想要的吗?
f[arr_, coords_] :=
With[{perm =
Ordering[
Join[coords, Complement[Range[TensorRank[arr]], coords]]]},
Total[Transpose[arr, perm], Length[coords]]
]