Assigning roots as variables to a function

I have x^2+5*x+6=0.
I see the roots with the root command but i want to set them as variables to a new function. Also how can i set them to two different displays? I want to write down:
sprintf( 'the first root:%f and the second root:%f')

 Réponse acceptée

Pat Gipper
Pat Gipper le 31 Déc 2020
The output of the roots function can be assigned to a workspace array variable and printed out as you wanted. See the simple example below. You would have to adapt the formatting for complex roots.
x=roots([1,5,6]);
sprintf('the first root:%f and the second root:%f',x)

4 commentaires

Walter Roberson
Walter Roberson le 31 Déc 2020
Note: all of the % formats for sprintf() and fprintf() ignore the complex portion of a value, so if you are dealing with complex values you should use real() and imag() to break them into pieces,
John Blaz
John Blaz le 31 Déc 2020
Thank you for your reply.
This is my script:
clc
clear
a=input('input the first number at x^2:');
b=input('input the second number at x:');
c=input('input the third number:');
[x1,x2]=ad(a,b,c);
sprintf('first root is: %f,second root is: %f',x1,x2)
And this is my function:
function [x1,x2] = ad(a,b,c)
%second degree equation
f=[a b c];
y=([roots(f)])
y(1)=x1
y(2)=x2
end
What am i doing wrong, in order toassign the roots to x1 and x2?
Pat Gipper
Pat Gipper le 31 Déc 2020
You just need to swap variables y and x in the function assignment,
x1=y(1);
x2=y(2);
John Blaz
John Blaz le 31 Déc 2020
It worked thank you.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by