Mercurial > repos > public > sbplib
annotate subsSymfun.m @ 696:7c16b5af8d98 feature/quantumTriangles
Add Jonatans symbolic lifehax
author | Ylva Rydin <ylva.rydin@telia.com> |
---|---|
date | Thu, 05 Oct 2017 18:04:23 +0200 |
parents | |
children |
rev | line source |
---|---|
696
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
1 % Subs for a symfun |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
2 % f remains a symbolic function. If any of it's arguments is eliminated |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
3 % it is removed from the argument list while preserving the order of the |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
4 % other arguments |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
5 function f = subsSymfun(f, old, new) |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
6 args = argnames(f); |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
7 |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
8 newExpr = subs(f, old, new); |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
9 vars = symvar(subs(args, old, new)); |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
10 |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
11 newArgs = args(ismember(args,vars)); |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
12 |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
13 f = symfun(newExpr, newArgs); |
7c16b5af8d98
Add Jonatans symbolic lifehax
Ylva Rydin <ylva.rydin@telia.com>
parents:
diff
changeset
|
14 end |