Mathematica Mathematica Pattern matching and replace repeated

  • Thread starter Thread starter 6.28318531
  • Start date Start date
  • Tags Tags
    Mathematica
AI Thread Summary
The discussion focuses on using Mathematica's pattern matching and replacement functions to generate an ordered list of integers that are larger than their predecessors. A user seeks assistance with the correct syntax for creating a rule that checks pairs of numbers and discards the smaller one. An example function, `larger`, is provided, which utilizes `Select` and `Transpose` to achieve the desired output. The function successfully returns the ordered list {3, 5, 6, 8, 9} from the input {3, 5, 2, 0, 6, 1, 8, 4, 9}. The thread highlights the utility of pattern matching in Mathematica for filtering data based on specific conditions.
6.28318531
Messages
51
Reaction score
0
I decided to ask here as well, because maybe someone will see it. Given a list of integers, use pattern matching and //.to create a rule that generates an ordered list of integers that are larger than the previous numbers in the list, eg given {3,5,2,0,6,1,8,4,9}, you should get {3,5,6,8,9}.I tried something like rules = {x_,y_,__}/;x>y -> {x,___}, calling our list L, L//.rules . I haven't really used this function before, what is the correct syntax? I want to check pairs of numbers and discard one if its less than the other. Any help would be appreciated.
 
Physics news on Phys.org
Here is one version (without rules):

Code:
larger[lst_] := Select[Transpose[{lst, Prepend[Most[lst], lst[[1]] - 1]}], #[[1]] > #[[2]] &][[All, 1]]

e.g.

Code:
larger[{3, 5, 2, 0, 6, 1, 8, 4, 9}]

gives:

Code:
{3, 5, 6, 8, 9}
 
Okay thanks
 

Similar threads

Replies
2
Views
2K
Replies
2
Views
5K
Replies
3
Views
5K
Replies
3
Views
2K
Replies
1
Views
1K
Replies
2
Views
3K
Back
Top