fprintf- I dont want to print one result.

조회 수: 7 (최근 30일)
Gyp
Gyp 2019년 12월 15일
편집: dpb 2019년 12월 15일
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