gpt4 book ai didi

wolfram-mathematica - 在 Mathematica 中使用模式重新排序

转载 作者:行者123 更新时间:2023-12-01 11:03:30 25 4
gpt4 key购买 nike

尝试这样做:

list={{{33, 105, 203, 295}, {34, 106, 204, 296}}, 
{{21, 135, 201, 333}, {22,136, 202, 334}}}

我想转换子列表,以便第一个:

{{33, 105, 203, 295}, {34, 106, 204, 296}}

成为

{{33, 204, 106, 295}, {34, 106, 105, 296}}

我不明白我在以下方面做错了什么:

list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> 
{{a_,g_,f_,d_}, {e_,c_,b_,h_}}

编辑

感谢 Leonid 的评论,以下内容现在可以使用了

 list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> 
{{a,g,f,d}, {e,c,b,h}}

如果有人知道更好的方法,请不要犹豫。

最佳答案

正如 Leonid 所写,但拒绝发布作为答案,您的模式一旦得到纠正就可以工作:

list /. {{a_,b_,c_,d_}, {e_,f_,g_,h_}} :> {{a, g, f, d}, {e, c, b, h}}

这是完成此任务的最直接方法,但正如 Leonid 也写的那样,它并不是最通用的方法。这是另一种方式,诚然没有模式,您可以采用这种方式:

orderBy[list_, order_] := Partition[Flatten[#][[order]], 4] & /@ list

orderBy[list, {1, 7, 6, 4, 5, 3, 2, 8}]

这允许您将重新排序指定为简单的排列,可以轻松地手写,或使用 RandomeSample@Range@8 生成.

如果你的数据有更多的形状,这可以用不同的 Partition 来扩展。参数等

关于wolfram-mathematica - 在 Mathematica 中使用模式重新排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8460058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com