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?

 采纳的回答

Sean de Wolski
Sean de Wolski 2012-2-23
This is functionality available for backward compatibility. If the old does not occur, but the new does, it switches them.
doc subs

2 个评论

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.
thanks for pointing that out. I don't understand how did i missed that part of documentation...

请先登录,再进行评论。

更多回答(0 个)

类别

Community Treasure Hunt

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

Start Hunting!

Translated by