Effacer les filtres
Effacer les filtres

Why does the code return an additional answer value that I have not asked for?

1 vue (au cours des 30 derniers jours)
M Yasir Muneeb
M Yasir Muneeb le 20 Oct 2022
First I defined a function:
function [p,q] = quadratic_formula(a, b, c)
p = (-b + sqrt((b)^2-4*a*c))/(2*a)
q = (-b - sqrt((b)^2-4*a*c))/(2*a)
After that I called the fuction with varying values. Every time it returns an answer value that I haven't asked for. For example,
quadratic_formula(5, 8, 3)
returns following:
p =
q =
ans =
I don't want this answer value. Why does it return that equal to the value of 'p'?

Réponses (2)

Davide Masiello
Davide Masiello le 20 Oct 2022
Modifié(e) : Davide Masiello le 20 Oct 2022
That is because you call the function without assigning it to a variable.
Therefore Matlab assigns it to a variable called ans, which can accept only one value, i.e. the first one (or p in your case).
So, the first 2 values that appear are printed from within the function (because you didn't use semicolons).
Then it also shows ans because you also call the function without semicolons.
A better way of doing this in Matlab is
[p,q] = quadratic_formula(5, 8, 3)
p = -0.6000
q = -1
function [p,q] = quadratic_formula(a, b, c)
p = (-b + sqrt((b)^2-4*a*c))/(2*a);
q = (-b - sqrt((b)^2-4*a*c))/(2*a);

Karen Yadira Lliguin León
you need to put ';' at the end of the line to stop . Change these lines
p = (-b + sqrt((b)^2-4*a*c))/(2*a);
q = (-b - sqrt((b)^2-4*a*c))/(2*a);


En savoir plus sur Logical dans Help Center et File Exchange


Community Treasure Hunt

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

Start Hunting!

Translated by