Questions about Mathematica's rule-based replacement functionality, including functions such as Rule (->), Replace, ReplaceAll (/.) and ReplaceRepeated (//.).
19
votes
2answers
646 views
Mathematica for Computer Scientists
Background
I've coded in C/Scheme for 10 years. I have a BS CS.
I've recently become very interested in pattern-matching (lisp's match macro), and term rewriting systems, which brought me to ...
19
votes
2answers
750 views
Extracting values from nested rules in JSON data
I have been using Mathematica to analyse some data from the StackExchange API. It is conveniently available in JSON form, which Mathematica interprets as replacement rules. However, some of the rules ...
18
votes
1answer
223 views
replacement rules from a pattern and a matching expression
(This seems to be a very basic necessity in a language having pattern-matching capabilities such as Mathematica, yet I struggled for many hours to find a common solution to this problem.)
Suppose ...
15
votes
3answers
389 views
Using results of Reduce
Suppose I have function f:
f[x_, y_] := 50000 + x 30000 + y 35000;
Now I want to find the x and y when f[]<=200000.
I use Reduce:
...
13
votes
1answer
198 views
rule-based implementation of an algorithm
When I first started learning about rule-based programming with Mathematica, I tried to translate this algorithm for computing the convex hull of a set of 2-D points in $O(n \log(n))$ time, to use ...
12
votes
6answers
955 views
Replacing composite variables by a single variable
To replace a single variable by another variable, one can simply use the the replace all (/.) operator (e.g., ...
12
votes
3answers
160 views
Options which require RuleDelayed
For some functions in Mathematica it is important to use RuleDelayed. One prominent example is the EvaluationMonitor for ...
10
votes
1answer
190 views
Transform an expression into a graph that can be plotted with TreeGraph (not TreeForm)
I would like to plot an expression (like TreeForm does), but using the new TreeGraph functionality.
...
9
votes
3answers
613 views
Replace expressions with symbols
First of all: I'm new to mathematica, so I would appreciate it if the answers are quite complete.
I have the result of calculation that is expressed in $\sin$ and $\cos$. Now, all of these can be ...
9
votes
4answers
172 views
Leave expression tree formatting the same when a replacement rule is applied
If I type e1 := 3 x + 2 (1 + y) z // TreeForm, I get an expression tree. If I then type e1 /. x -> 3, I get another ...
9
votes
2answers
162 views
How to extract a specific element from EXIF photographic metadata?
It's now possible to import photographs into Mathematica and import the EXIF data at the same time:
i = Import["ExampleData/coneflower.jpg", "ImageWithExif"]
...
8
votes
7answers
222 views
Indexed replacement
Is there some equivalence of MapIndexed for rules?
Consider a substitution on
3 a + 4 b + 21 c + ....
The first integer I want to replace by 1, the second ...
8
votes
3answers
224 views
Replace operators
/. can be used to replace variables but how can one replace operators.
For example in a * b, ...
8
votes
4answers
252 views
“Strange” behavior of Rule
According to the Help
lhs->rhs evaluates rhs immediately.
How to understand the output of the following code?
ClearAll@x;
{1, 3.5} /. x_?IntegerQ -> {x}
...
8
votes
2answers
155 views
How do I write a function that can be used in a rule to modify both sides of an equation? [duplicate]
I sometimes need fine grain control over equations in Mathematica in order to help me understand how to solve a problem manually. A greatly simplified example of a session might be something like ...
8
votes
3answers
373 views
How to implement a regular grammar?
What is the most simple, elegant way of implementing a rewrite-system defined as:
$$
\begin{aligned}
\Sigma &= \{a_1, a_2, a_3, ...\} \\
N &= \{A_1, A_2, A_3, ...\} \\
\{\alpha_1 , ...
8
votes
2answers
117 views
Replacing product expressions - named vs. unnamed pattern?
Suppose I have an expression of the form
a b c d + x y z
The FullForm of this is
...
8
votes
1answer
142 views
error when defining a compiled function with ReplacePart
I always have difficulty in writing a non-trivial compiled function. I'm using Mathematica 9. Please see the following code
...
8
votes
2answers
473 views
Mathematica rule substitution memory
First I present the specific programming question, and then I provide further background details.
Given an expression in Mathematica, say f=3x+7y, there are two ...
8
votes
2answers
139 views
Representing a value in an output as a self defined variable
I'm trying to find a way to have Mathematica always represent a numerical value as a self defined variable that I define using lhs=rhs. For example, if I execute
...
7
votes
6answers
811 views
How do I replace a variable in a polynomial?
How do I substitue z^2->x in the following polynomial z^4+z^2+4?
z^4+z^2+4 /. z^2->x
...
7
votes
2answers
186 views
Using ReplaceAll on SparseArray
I'm using SparseArrays in a notebook in which I am doing complex conjugation manually, i.e. writing $\sqrt{-1}$ as i and ...
7
votes
2answers
193 views
Why does the name of a pattern affect the result of a transformation rule?
I was playing a little dirty, trying to get a template for defining a Curl[] operator.
I wrote the following rule, which I knew was going to spit out a few ...
7
votes
3answers
124 views
substitution rules excluding subscripted variables
Suppose I have an expression containing p,Subscript[p,1],Subscript[p,2],etc. I want to ...
7
votes
3answers
146 views
7
votes
3answers
192 views
Piping and Replacement
I haven't been able to figure out how to use piping with certain functions. Specifically, I would like to apply a replacement at the end of a pipe, like the following:
...
7
votes
4answers
170 views
Generating all matrices with 1 (possibly) replaced by -1
I have a matrix $M$, whose dimension I am unsure of, which has only $\lbrace0,1\rbrace$ entries. I would like to generate all the possible matrices that result from changing (some subset) of the $1$'s ...
7
votes
1answer
162 views
Is it possible to specify a context-sensitive, “depth-agnostic” rewrite rule?
I'm using the term "depth-agnostic" in this post to describe structural patterns featuring a "target" sub-pattern that can occur "at any depth" relative to one or more "context" sub-patterns.
As a ...
7
votes
1answer
167 views
Simple problem with Manipulate and Plot
Would anyone have an idea why the following doesn't work:
rule = {z -> x^2 + 2 x + y};
Manipulate[
Plot[z /. rule, {x, 0, 10}],
{{y, 2, "y"}, 1, 5}
]
But ...
7
votes
1answer
89 views
Performance of Dispatch and lists of Rules
First of all, I have seen the question "Why is this parallel evaluation with Dispatch[] so slow?", but that seems to be a different matter.
My question arose when I tried to answer this question by ...
6
votes
3answers
237 views
Replacement rule only matches part of expression
I have the result of a calculation (which is too long to mention here) and it gives
...
6
votes
2answers
195 views
6
votes
3answers
453 views
Arithmetic operation on the value returned by Solve
I want to modify the value that is returned by Solve. Example:
SolC1 = Solve[Sin[ π x / L] == 1, x]
{{x -> L/2}}
I need to add n to x so that x becomes ...
6
votes
2answers
159 views
Applying a transformation rule on an Image
I haven't been able to figure out why the following doesn't work:
...
6
votes
1answer
142 views
ReplaceAll inside an Iterator
I'd like to apply a set of rules to an expression defining the iterators of the table, like this:
...
6
votes
2answers
427 views
Speeding up mathematica by subsitituting numerical values
According to this Wolfram Blog post, one can speed up Mathematica code by substituting numerical values as soon as possible.
How does one substitute before the main expression is evaluated? The ...
5
votes
6answers
340 views
How to simplify a complicated Sum in terms of power Sums?
For example, I have:
$a=\sum _{r=1}^n x_r
\left(\left(\sum _{i=1}^n
x_i-x_r\right){}^2-\sum
_{i=1}^n x_i^2\right)$
...
5
votes
3answers
457 views
How to use results of NDsolve[] for further solving of ODEs?
I have a system of ODEs with 10 eqns. I can solve the first 5 independently. How can I use those results to solve for the remaining 5?
An easy example would be
$\dot{x}=f(x), \quad
\dot{y}=g(x,y)$
...
5
votes
1answer
73 views
Why does this pattern for combining two lists require triple underscores (___) to work?
I understand that __ is a list of one or more elements, and that ___ is 0 or more elements, but when I try this rule with 2 ...
5
votes
1answer
111 views
Generating replacement rules programatically
I would like to generate sets of replacement rules programatically for predefining some permutations. So a function
...
5
votes
2answers
99 views
Trouble with Replacements [duplicate]
I have the following line of code:
Plus @@ Table[p[x], {x, 0, 20}] /. p[x_] -> Boole[MemberQ[{0, 5}, x]]
The first part of this produces
...
5
votes
1answer
69 views
How can I substitute something using only map?
For example, I have the equation
x^2 + y^2 == x*y
and I want to apply the rule
y -> s*x
I can do it easily by
...
4
votes
2answers
108 views
Confusing ReplaceRepeated & Hold
I've been bootstrapping myself to the very alien world of Mathematica and there came my first WTF moment:
...
4
votes
3answers
248 views
Replace function and its derivatives found with Solve
If I have an equation
eq = f[x] + g[x] == 0
and I solve for f[x]
sol = Solve[eq,f[x]]
...
4
votes
1answer
126 views
Replace rule does not match
I have the following expression
-3 I Ez Re[Ex] + 3 I Ex Re[Ez]
And I wish to write this in the form ...
4
votes
2answers
238 views
4
votes
2answers
156 views
Returning Replacement Rules in a function and using it later on
I would like a function which returns replacement rules as some internal mathematica functions are doing and use the results in other functions.
I could not find any information on that and I'm ...
4
votes
2answers
76 views
Creating functions from output of other calculations
Apologies in advance if the title is vague, I'm not really sure what to call this.
I have a function (call it 'foo') that generates a largeish polynomial, and it is natural to make the variables be
...
4
votes
1answer
94 views
Replacing a combination of terms
I have a quite simple question. I have an expression that looks similar to
$T=\frac{1}{a_1}-\frac{1}{a_2}+1$ and I'd like Mathematica to use $A=\frac{a_1}{a_2}$ to reformat the expression (if ...
4
votes
1answer
205 views
Replace rule also matching complex numbers
I'm having the replace rule:
rule = {-g_ x_^4 - 2 g_ x_^2 y_^2 - g_ y_^4 -> -g (x^2 + y^2)^2};
Now,
...
