gpt4 book ai didi

select - "Select"比较 Mathematica 中的相邻元素

转载 作者:行者123 更新时间:2023-12-04 06:47:45 25 4
gpt4 key购买 nike

在 Mathematica 中,命令 Select 只允许为列表中的每个元素定义一个选择标准 独立 .

我想指定一个标准,该标准分别依赖于前一个和/或下一个元素的函数以及所有元素的函数。不能以这种方式测试第一个和最后一个元素,但无论如何都应该选择它们。

迭代地这样做可能不会有问题,我想先尝试一下它的功能。

我会以某种方式使用它进行成像:

Select[list,FirstQ||LastQ,Func1[#-1,#]&&Func2[#,#1]&&Func3[list]&]

最佳答案

我建议使用分区功能。要将列表的每个元素与其直接邻居分组,您可以这样做

Partition[{a,b,c,d,e}, 3, 1]

得到这个:
{{a,b,c}, {b,c,e}, {c,d,e}}

知道了这一点,我们可以制作一个与您的规范大致匹配的“选择与邻居”功能:
SelectWN[list_, firstq_, lastq_, trinaryfunc_] := Join[
If[firstq, {First@list}, {}],
Select[Partition[list, 3, 1], trinaryfunc@@#&][[All,2]],
If[lastq, {Last@list}, {}]]

请注意,在 trinaryfunc 的参数中,#2 是列表元素本身,#1 是左邻居,#3 是右邻居。
将此概括为使用任意数量的邻居会很好,而不仅仅是直接邻居,但是您需要一种比 {#1, #2, #3} 类比更好的方式来引用它们。

关于select - "Select"比较 Mathematica 中的相邻元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3530062/

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