# I am trying to get my answer to Display but it wont let me

2 views (last 30 days)
Bastian on 12 Dec 2023
Answered: Voss on 12 Dec 2023
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
disp('the roots will be',(x))
says error below-
Incorrect number or types of inputs or outputs for function extractCreationTimeDigits.
Error in sym/disp (line 16)
useDigits = extractCreationTimeDigits(X);
Error in Workshop_5_Excercise_3_Pt_1 (line 4)
disp('the roots will be',(x))
>>
Stephen23 on 12 Dec 2023
DISP has only one input argument.
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
disp(x)

Dyuman Joshi on 12 Dec 2023
The function disp accepts only 1 input argument.
If you want to display the roots and the text in the same line, you will have to create a string before using disp, see this example for reference - https://in.mathworks.com/help/matlab/ref/disp.html#btnoykw-1
If you want to display them seperately, you can call disp() twice like this -
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x)
x =
disp('the roots will be')
the roots will be
disp(x)

Christopher McCausland on 12 Dec 2023
Hi Bastian,
Try replacing
disp('the roots will be',(x))
with
fprintf('the roots will be %d. \n',x)
This should correct the string formating and print as desired.
Christopher

Star Strider on 12 Dec 2023
Another option —
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
disp(["the roots will be ",string(x.')])
"the roots will be " "-3" "1" "2"
Note the use of string arrays and the simple transpose, .' operator.
.

Voss on 12 Dec 2023
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
str = sprintf('%s ',x);
str(end) = [];
fprintf('the roots will be [%s]\n',str)
the roots will be [-3 1 2]

Voss on 12 Dec 2023
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
fprintf('the roots will be [%s]\n',strjoin(string(x)))
the roots will be [-3 1 2]

Voss on 12 Dec 2023
syms f(x)
f(x) = (x^3) - (7*x) + 6;
x=solve(f(x)==0,x);
fprintf('the roots will be [%s]\n',join(string(x)))
the roots will be [-3 1 2]