fprintf Displays the wrong value
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
The following command returns the wrong value when using the command:
fprintf('\ny = %1.2f\n\n',y);
Enter a value for x: 5
y = 45.00
y = 52.00
Here is the code:
clear all; clc
x = input('Enter a value for x: ');
if x == -2 || x == -6 || x == -4;
y = '3';
elseif x == 2;
y = '0';
else
error('Error');
end
clc
% display(y);
fprintf('\ny = %1.2f\n\n',y);
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 22 Okt. 2014
Bearbeitet: Image Analyst
am 22 Okt. 2014
You're setting y equal to a character string but using %1.2f (which doesn't make sense even if y were a double) instead of %s to display a character string. So it displays the ASCII values of the string. Instead of
y = '0'; % y is a character.
and so on, try
y = 0; % y is a double.
and use %d to display it, not %1.2f, in your fprintf() call.
Weitere Antworten (1)
Roger Stafford
am 22 Okt. 2014
You are assigning y string values, not numerical values, but you are displaying them using 'fprintf' for numerical values (%1.2f), so you have to expect strange results. For example the string value of y = '3' has a corresponding numerical value of 51.
Also you have written
if x == -2 x == -6 x == -4;
but that will not behave as I think you expect. Better read up on the 'if' function to see how to write a valid 'if' condition.
1 Kommentar
Image Analyst
am 22 Okt. 2014
That's what I thought at first, but no, what he really needs to read is this http://www.mathworks.com/matlabcentral/answers/13205-tutorial-how-to-format-your-question-with-markup. I went ahead and formatted it properly so that the || show up now.
Siehe auch
Kategorien
Mehr zu Entering Commands finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!