Error returned with solve function

1 view (last 30 days)
Uku
Uku on 7 Jul 2012
Hello!
I'm a bit puzzled when trying to solve a simple equation, taken as an example from the Matlab documentation:
syms a b c x
solve(a*x^2 + b*x + c == 0)
This returns:
??? Error using ==> char Conversion to char from logical is not possible.
Error in ==> solve>getEqns at 189 vc = char(v);
Error in ==> solve at 67 [eqns,vars] = getEqns(varargin{:});
Quite the opposite to what the example displays.
How can I solve this? Uku

Answers (1)

Walter Roberson
Walter Roberson on 7 Jul 2012
You are using an older version of MATLAB that evaluates the truth of the comparison expression (creating a logical) before it calls solve()
Alternately, you might have assignments to a, b, c, and x before the solve() call, and if those assignments are all numeric values then the "symbolness" of the variables would be over-written, leaving a*x^2 + b*x + c as being a numeric variable, whose numeric value would be compared to 0 and that result passed to solve()

Community Treasure Hunt

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

Start Hunting!