BUG in subs()?

3 views (last 30 days)
Tamás Király
Tamás Király on 23 Feb 2012
Edited: Cedric on 22 Oct 2013
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?

Accepted Answer

Sean de Wolski
Sean de Wolski on 23 Feb 2012
This is functionality available for backward compatibility. If the old does not occur, but the new does, it switches them.
doc subs
  2 Comments
Walter Roberson
Walter Roberson on 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 on 24 Feb 2012
thanks for pointing that out. I don't understand how did i missed that part of documentation...

Sign in to comment.

More Answers (0)

Categories

Find more on Symbolic Math Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!