请考虑:
daList = {{{21, 18}, {20, 18}, {18, 17}, {20, 15}},
{{21, 18}, {20, 18}, {21, 14}, {21, 14}}};
我想计算该列表的2个子列表中每个点之间的距离:
然而,我需要使用Function
来应用正确的级别:
Function[seqNo,
EuclideanDistance[#, {0, 0}] & /@ daList[[seqNo]]] /@
Range[Length@daList]
out = {{3 Sqrt[85], 2 Sqrt[181], Sqrt[613], 25}, {3 Sqrt[85], 2 Sqrt[181],
7 Sqrt[13], 7 Sqrt[13]}}
有没有办法在那里避免这种沉重的功能? 使用seqNo作为参数指定避免我的函数的级别? :
EuclideanDistance[#, {0, 0}] & /@ daList
out={EuclideanDistance[{{21, 18}, {20, 18}, {18, 17}, {20, 15}}, {0, 0}],
EuclideanDistance[{{21, 18}, {20, 18}, {21, 14}, {21, 14}}, {0, 0}]}
答案 0 :(得分:6)
您是否尝试过Map中的Level规范?
Map[EuclideanDistance[#, {0, 0}] &, daList, {2}]
给出
{{3 Sqrt[85],2 Sqrt[181],Sqrt[613],25},{3 Sqrt[85],2 Sqrt[181],7 Sqrt[13],7 Sqrt[13]}}
答案 1 :(得分:6)