Error using sym/subsref
Show older comments
I have this program to get the value of "m"
clc
syms m
eqns = (72*m^2)-(1.5*m^3) == 358;
S=solve (eqns,m,'Real',true)
double (S.m);
However in the output I get this error
S =
32*cos(atan(2167511^(1/2)/5965)/3) + 16
16*3^(1/2)*sin(atan(2167511^(1/2)/5965)/3) - 16*cos(atan(2167511^(1/2)/5965)/3) + 16
16 - 16*3^(1/2)*sin(atan(2167511^(1/2)/5965)/3) - 16*cos(atan(2167511^(1/2)/5965)/3)
Error using sym/subsref
Too many output arguments.
Error in Untitled (line 5)
double (S.m);
Can any body help me with this?
Accepted Answer
More Answers (1)
Mathias Andersen
on 4 May 2020
1 vote
Double(S) will produce a matrix with the solutions.
S.m is not a variable stated anywhere in the script
4 Comments
Rohit Tamrakar
on 4 May 2020
Walter Roberson
on 4 May 2020
S is the output of solve(). If two or more variables were being solved for and a single output were given, then S would be a structure with one field for each variable being solved for, and then S.m would exist.
S.m would also be created if 'returnconditions', true is specified.
Mathias Andersen
on 4 May 2020
Edited: Mathias Andersen
on 4 May 2020
S contains the values for m
Walter Roberson
on 4 May 2020
Not when you solve for a single variable and you do not have ReturnConditions true: in that case, MATLAB cannot tell that apart from the case where you want the non-struct version of the solution.
Categories
Find more on MATLAB 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!