Subs with 2 numbers returns a number

3 次查看(过去 30 天)
Subs when given 2 numbers, returns a number. But I need a string/function to be returned
example:
>> syms x y;
>> f=-y+x+2;
>> subs(f, [x,y], [2,2])
ans =
2
>>
But I need it: -2+2+2

回答(2 个)

Star Strider
Star Strider 2021-11-10
It is doing the substitution and the calculation at the same time, and providing the answer.
Using symbolic arguments instead —
syms x y a b
f=-y+x+2;
subs(f, [x,y], [a,b])
ans = 
as expected.
.

John D'Errico
John D'Errico 2021-11-11
Simple enough. Convert the original expression to a string. Now just do string processing, with finds and replace operations.
Can you do it using symbolic computations? Probably not, since subs will combine those numeric constants for you automatically.

标签

Community Treasure Hunt

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

Start Hunting!

Translated by