How do I stop random numbers from popping up when I run my code?
2 views (last 30 days)
Show older comments
Player(1).Name = 'Ivan Barrocio';
Player(1).Position = 'Point Guard';
Player(1).Height = '72';
Player(1).shirt = '22';
Player(2).Name = 'Aries Vega';
Player(2).Position = 'Shooting Guard';
Player(2).Height = '69';
player(2).shirt = '1';
Player(3).Name = 'James Webster';
Player(3).Position = 'Small Forward';
Player(3).Height = '75';
Player(3).shirt = '23';
Player(4).Name = 'Anthony Juarez';
Player(4).Position = 'Power Forward';
Player(4).Height = '76';
Player(4).shirt = '24';
Player(5).Name = 'AJ Asberry';
Player(5).Position = 'Center';
Player(5).Height = '77';
Player(5).shirt = '4';
fprintf(' Name Position Height Shirt \n')
for n=1:5
fprintf('\t%s %s \t%g \t %g\n',Player(n).Name,Player(n).Position,Player(n).Height,Player(n).shirt)
end
I get----> Name Position Height Shirt
Ivan Barrocio Point Guard 55 50
22 Aries Vega Shooting Guard 54 57
James Webster Small Forward 55 53
23 Anthony Juarez Power Forward 55 54
24 AJ Asberry Center 55 55
4 >>
Why are the 55's popping up?
0 Comments
Accepted Answer
Stephen23
on 21 Nov 2022
Edited: Stephen23
on 21 Nov 2022
"Why are the 55's popping up?"
Because you are storing all of the numeric data as character, which you then supply to FPRINTF and try to convert using format string '%g' which is not suitable for text... and so FPRINTF prints the character code:
fprintf('%g\n','7')
There is nothing random happening here, FPRINTF is is doing the best it can with the inputs you are giving it.
The simple solution is to store numeric data as numeric, not as text like you are doing:
Player(1).Name = 'Ivan Barrocio';
Player(1).Position = 'Point Guard';
Player(1).Height = 72;
Player(1).Shirt = 22;
Player(2).Name = 'Aries Vega';
Player(2).Position = 'Shooting Guard';
Player(2).Height = 69;
Player(2).Shirt = 1;
Player(3).Name = 'James Webster';
Player(3).Position = 'Small Forward';
Player(3).Height = 75;
Player(3).Shirt = 23;
Player(4).Name = 'Anthony Juarez';
Player(4).Position = 'Power Forward';
Player(4).Height = 76;
Player(4).Shirt = 24;
Player(5).Name = 'AJ Asberry';
Player(5).Position = 'Center';
Player(5).Height = 77;
Player(5).Shirt = 4;
for k = 1:numel(Player)
fprintf('%24s %24s %8g %8g\n', Player(k).Name, Player(k).Position, Player(k).Height, Player(k).Shirt)
end
0 Comments
More Answers (0)
See Also
Categories
Find more on Histograms 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!