How to categorize a range
1 view (last 30 days)
Show older comments
Takashi Fukushima
on 1 Nov 2019
Commented: Takashi Fukushima
on 2 Nov 2019
Hello,
I would like to make write a program like categorizing based on answers.
I put what I have now.
a=input("Enter your height in cm: ");
b=input("Enter your weight in g: ");
Gender=input("Enter number for your gender 1=male 2=female: ");
BMI=(b/1000)/(a/100)^2;
disp("Your BMI is: " + BMI);
Status=0;
switch Gender
case 1
if BMI<20
Status="Underweight";
if BMI>=20 & BMI<25
Status="Regular weight";
if BMI>=25 & BMI<30
Status="Overweight";
if BMI>=30 & BMI<40
Status="Adiposity";
if BMI>=40
Status="Severe Adiposity";
end
end
end
end
end
case 2
if BMI<19
Status="Underweight";
if BMI>=19 && BMI<24
Status="Regular weight";
if BMI>=24 && BMI<30
Status="Overweight";
if BMI>=30 && BMI<40
Status="Adiposity";
if BMI>=40
Status="Severe Adiposity";
end
end
end
end
end
otherwise
disp("invalid");
end
disp("Your health status: " + Status);
It does not have an error, but it applies only the first "if" which shows "Status=Underweight", and other "if" shows as "Status=0"
I really appreciate if you can solve this problem.
Thanks,
0 Comments
Accepted Answer
David Hill
on 2 Nov 2019
function BMIdetermination()
a=input("Enter your height in cm: ");
b=input("Enter your weight in g: ");
Gender=input("Enter number for your gender 1=male 2=female: ");
BMI=(b/1000)/(a/100)^2;
disp("Your BMI is: " + BMI);
lookup={'Underweight','Regular weight','Overweight','Adiposity','Severe Adiposity'};
if Gender==1
Status=lookup{find(histcounts(BMI,[0,20,25,30,40,100]))};
else
Status=lookup{find(histcounts(BMI,[0,19,24,30,40,100]))};
end
disp("Your health status: " + Status);
end
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!