如果else语句分类数据

18视图(30天)
嗨,我是新matlab和我有一个问题。对不起,如果问题很简单。
我已经创建了一个数据(样本容量= 50)与身高和体重来计算身体质量指数。
%的公式来计算身体质量指数
体重指数=。/(高度)。^ 2;
我循环了BMI基于标志(如:如果体重指数< 18.5,disp(“减持”)…)分类成“减持”,“正常”,“超重”,等等。
%循环我的体重指数和分类成“减持”,“正常”……
i = 1:50
如果BMI (i) < 18.5
disp (“减持”)
elseif体重指数(i) > = 18.5体重指数(i) < 24.9
disp (正常体重的)
elseif体重指数(i) > = 24.9体重指数(i) < 29.9
disp (“肥胖症前兆”)
elseif体重指数(i) > = 29.9体重指数(i) < 34.9
disp (“肥胖类我”)
elseif体重指数(i) > = 34.9体重指数(i) < 39.9
disp (“肥胖II级”)
其他的
disp (“肥胖第三类”)
结束
结束
循环后,它将显示所有的数据
体重过轻
肥胖
正常的
体重过轻
对50个样本大小。反正有只显示的总数减持,正常的总数,等等
我可以显示数据在减持的总和,“正常的总和”……而不是显示所有50个数据集?
任何建议将最欣赏。

接受的答案

邓肯阿宝
邓肯阿宝 2021年6月7日
你可以使离散的BMI值分类,然后数一数,像这样:
> > c =离散化(BMI,[0 18.5 24.9 29.9 34.9 39.9 50],“分类”,(“重量不足”,“正常体重”、“肥胖症前兆”、“肥胖我”,“肥胖二世”,“肥胖III”);
> >总结(c)
重量不足14
正常体重7
肥胖症前兆1
肥胖我6
肥胖II 8
肥胖三世14
3评论

登录置评。

更多的答案(2)

玛纳斯Minnoor
玛纳斯Minnoor 2021年6月6日
你好,
你可能会创建一个数组的长度6,增加一个特定的索引数组的每一次访问一个特定的体重类别(您可能把它后显示命令)。这样你为每个重量维护一个计数器类别。
更优雅/复杂的解决方案,你可以看一看地图:
希望这个有帮助。

Girijashankar Sahoo
Girijashankar Sahoo 2021年6月6日
编辑:里克 2021年6月7日
重量=兰迪([100]1 50);
身高=兰迪(3 [1],1,50);
体重指数=。/(高度)。^ 2;
%循环我的体重指数和分类成“减持”,“正常”……
i = 1:50
如果BMI (i) < 18.5
disp (“减持”)
str (i) = (“减持”];
elseif体重指数(i) > = 18.5体重指数(i) < 24.9
disp (正常体重的)
str (i) = (“正常体重”];
elseif体重指数(i) > = 24.9体重指数(i) < 29.9
disp (“肥胖症前兆”)
str (i) = (“肥胖症前兆”];
elseif体重指数(i) > = 29.9体重指数(i) < 34.9
disp (“肥胖类我”)
str (i) = (“肥胖类我”];
elseif体重指数(i) > = 34.9体重指数(i) < 39.9
disp (“肥胖II级”)
str (i) = (“肥胖类II”];
其他的
disp (“肥胖第三类”)
str (i) = (“肥胖第三类”];
结束
结束
体重=总和(计数(str,“减持”))
Normalweight =总和(计数(str,“正常体重”))
Pre_obesity =总和(计数(str,“Pre-obesityt”))
Obesity_class_I =总和(计数(str,“肥胖类我”))
Obesity_class_II =总和(计数(str,“肥胖类II”))
Obesity_class_III =总和(计数(str,“肥胖第三类”))
1评论
可怜的孩子
可怜的孩子 2021年6月7日
你好,谢谢你的回答。但它仍然显示50个变量循环部分……
结果:
体重=
0
Normalweight =
0
Pre_obesity =
0
Obesity_class_I =
0
Obesity_class_II =
0
Obesity_class_III =
0
正常体重
体重=
0
顺便说一句,谢谢再次!

登录置评。

类别

找到更多的在分类数组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的