How to stop displaying scientific notation

17 vues (au cours des 30 derniers jours)
RetiredCheetoXI
RetiredCheetoXI le 8 Fév 2022

This calculates a couple different things and I want the answers to be up to 3 decimal places.
prompt = 'Time of flight?(s) ';
t = input(prompt);

if (t <= 45)
h = 15*t.^2;
fprintf('Altitude: %dm\n\n', h)
v = 30*t;
fprintf('Velocity: %dm/s\n\n', v)
if (h <= 11000)
T = (h - 44332.30769230768) / -153.84615384615378;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(-6.5e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(-6.5e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 25000)
T = 216.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 47000)
T = (h + 47220) / 333.3;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(3e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(3e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 53000)
T = 282.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 79000)
T = (h - 115813) / -222.2;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(-4.5e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(-4.5e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 90000)
T = 165.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 110000)
T = (h - 48585) / 250;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(4e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(4e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
end

elseif (t < 117.5)
h = 30375 + (1350*t) + 0.5*(-11.5)*t.^2;
fprintf('Altitude: %dm\n\n', h)
v = 1350 - 11.5*t;
fprintf('Velocity: %dm/s\n\n', v)

if (h <= 11000)
T = (h - 44332.30769230768) / -153.84615384615378;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(-6.5e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(-6.5e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 25000)
T = 216.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 47000)
T = (h + 47220) / 333.3;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(3e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(3e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 53000)
T = 282.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 79000)
T = (h - 115813) / -222.2;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(-4.5e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(-4.5e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 90000)
T = 165.66;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(1*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(1*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
elseif (h <= 110000)
T = (h - 48585) / 250;
fprintf('Temperature: %dk\n\n', T)
P = 101.325*(T/273.15).^(-9.81/(4e-3*287));
fprintf('Pressure: %dkPa\n\n', P)
rho = 1.225*(T/273.15).^-((9.81/(4e-3*287))+1);
fprintf('Density: %dkg/m^3\n\n', rho)
end

end

Réponses (1)

Garv Agarwal
Garv Agarwal le 26 Juin 2023
Hi RetiredCheetoXI,
From my understanding, you want the output data to be in fixed floating-point notation instead of scientific notation. Moreover, it should be up to 3 decimal places.
You can use %f formatting operator instead of %d to achieve this-
fprintf('Temperature: %.3fk\n\n', T)
Where .3 before the f denotes the number of decimal places (in this case three).
For more details, you can refer to the fprintf documentation-

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by