wolfram-mathematica - 重复图案

标签 wolfram-mathematica

有人可以建议如何构建模式以从此数据中提取连续数字的第一个列表吗?

sample = {52.2624, 54.4003, 60.7418, 61.3801, 62.6397, 61.7992,
   63.2282, "", "", "", "", "", "", "", "", "", "", 62.3921, 61.897,
   60.299, 59.053, 61.3778, 64.3724, 63.4251, 78.1912, 79.7451,
   80.4741, "", 81.324, 79.9114, 93.7509};

我尝试了像sample //. {useable : _?NumberQ .., ___} -> {useable}这样的变体都无济于事。
useable = TakeWhile[sample, NumberQ]效果很好,但是我想知道如何使用模式匹配。

最佳答案

尝试保留您的逻辑:

 sample /. {useable : Longest[_?NumberQ ..], ___} -> {useable}

如果您想要最长的数字序列:
sample /. {___, useable : Longest[_?NumberQ ..], ___} -> {useable}

编辑

要获取所有数字序列:
Cases[SplitBy[sample, NumberQ], {_?NumberQ ..}]

或者
Last@Reap[sample //. {x___, useable : Longest[_?NumberQ ..], y___} :> 
                                              (Sow@{useable}; {x}~Join~{y})]

关于wolfram-mathematica - 重复图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8431031/

相关文章:

wolfram-mathematica - Ordering@Ordering 和排名排列

graphics - 在 Mathematica 中使用图形进行条件着色

matrix - 有条件地删除矩阵中的行

image-processing - 选择矩阵中感兴趣区域中的数据(使用 Mathematica)

wolfram-mathematica - 如何从 2D Mathematica 插值函数中获取离散数据?

wolfram-mathematica - 为什么这个表达式替换不起作用?

matrix - 线性求解数学

wolfram-mathematica - 数学 : branch points for real roots of polynomial

wolfram-mathematica - 远程内核正常工作的防火墙设置(Mathematica)

graph - 如何使用 Mathematica 8 找到加权二分图的最小边覆盖?