fprintf- I dont want to print one result.

3 次查看(过去 30 天)
This is my code. I want that when the person put the value 0, the message print ONLY "Negative,has not being infected". But instance it give also the hour of being infected.
x= input ('Enter x: '); %Degree of reaction to the virus from a blood test.
if x==0
disp ('Negative, has not being infected.')
N=0;
elseif x<=11
N= 3*x + 36;
elseif x > 11 && x<=33
N= x*x - 10;
elseif x > 33 && x<=64
N= x-6;
end
fprintf('\n%g hours of being infected.\n',N)

采纳的回答

Jesus Sanchez
Jesus Sanchez 2019-12-15
clear
clc
x= input ('Enter x: '); %Degree of reaction to the virus from a blood test.
showHours = 1;
if x==0
disp ('Negative, has not being infected.')
N=0;
showHours = 0;
elseif x<=11
N= 3*x + 36;
elseif x > 11 && x<=33
N= x*x - 10;
elseif x > 33 && x<=64
N= x-6;
end
if showHours
fprintf('\n%g hours of being infected.\n',N)
end
  5 个评论
Jesus Sanchez
Jesus Sanchez 2019-12-15
wow, thanks for the detailed explanation!
dpb
dpb 2019-12-15
编辑:dpb 2019-12-15
Another way to recast...
x= input ('Enter x: '); %Degree of reaction to the virus from a blood test.
if x<=0
disp ('Test negative, subject has not been infected.')
N=0;
return
end
% set polynomial coefficeints by regime
if x<=11, b=[0 3 36]; end % 3t+36
elseif x>11 & x<=33, b=[1 0 -10]; end % t^2-10
elseif x>33 & x<=64, b=[0 1 -6]; end % t-6
else error("Reaction >64 beyond correlation range"), end
N=polyval(b,x); % evaluate poly for x
fprintf('\nSubject %g hours of being infected.\n',N)
But, there's something funky in the correlation as given--it's grossly discontinuous...

请先登录,再进行评论。

更多回答(1 个)

dpb
dpb 2019-12-15
A number of ways...one would be to include the fprintf statement in an if....end clause itself on value of N (or x).
Another would be to exit inside the x==0 clause since there's nothing else to be done.
Yet another would be to place all the elseif clauses inside an else on what would then become the outer if...else...end construct.
It's unfortunate TMW didn't implement range expressions in switch; it would be more elegant imo...

类别

Help CenterFile Exchange 中查找有关 Modeling 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by