subs('N*g', 'N', 'tg/u')
subs('N*g', 'tg/u', 'N')
these two code lines give the same result:
(g*tg)/u
but the first line should give back:
(g*tg)/u
and the second result should be:
N*g
since there is no 'tg/u' which could be substitued...
techdoc says:
subs(S,old,new)
so i think it should only look for 'old' and change to 'new', not vice versa.
any idea how can i avoid that subs function changes 'new' to 'old' in the S expression?

 Risposta accettata

Sean de Wolski
Sean de Wolski il 23 Feb 2012

1 voto

This is functionality available for backward compatibility. If the old does not occur, but the new does, it switches them.
doc subs

2 Commenti

Walter Roberson
Walter Roberson il 23 Feb 2012
This is *documented* functionality.
http://www.mathworks.com/help/toolbox/symbolic/subs.html
If subs(s,old,new) does not change s, subs(s,new,old) is tried. This provides backwards compatibility with previous versions and eliminates the need to remember the order of the arguments. subs(s,old,new,0) does not switch the arguments if s does not change.
Tamás Király
Tamás Király il 24 Feb 2012
thanks for pointing that out. I don't understand how did i missed that part of documentation...

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by