Questions about Mathematica's rule-based replacement functionality, including functions such as Rule (->), Replace, ReplaceAll (/.) and ReplaceRepeated (//.).
19
votes
2answers
629 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
690 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
212 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
379 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:
...
10
votes
6answers
907 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., ...
10
votes
1answer
178 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
4answers
169 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
158 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
218 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
214 views
Replace operators
/. can be used to replace variables but how can one replace operators.
For example in a * b, ...
8
votes
3answers
594 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 ...
8
votes
3answers
366 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
113 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
136 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
450 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
138 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
766 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
178 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
4answers
209 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}
...
7
votes
2answers
189 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
143 views
7
votes
2answers
152 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 ...
7
votes
3answers
176 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
3answers
93 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
1answer
160 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
161 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 ...
6
votes
3answers
232 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
189 views
6
votes
3answers
443 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
149 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
136 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
416 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
310 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
409 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
64 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
106 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
95 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
64 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
102 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
224 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
123 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
229 views
4
votes
2answers
150 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
73 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
93 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
198 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,
...
3
votes
3answers
270 views
How to replace all occurrences of an element in a list?
Consider the following:
list={1,2,2,2,3};
I would like to replace all 2 with the string "Test". ...
3
votes
1answer
95 views
$Post with ReplaceAll [closed]
I'd like to have a ReplaceAll applied to every output in my notebook. When I try this using $Post, e.g. by writing
...
3
votes
3answers
307 views
Changing variables algebraically
Suppose one has two functions, $y(x)$ and $z(x)$, and one seeks to obtain $y(z)$ by substituting $x(z)$ into $y(x)$. Can this be done in a single step? Or must $z(x)$ first be inverted independently? ...
