如果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个数据集?
任何建议将最欣赏。
0评论
接受的答案
邓肯阿宝
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
更多的答案(2)
玛纳斯Minnoor
2021年6月6日
你好,
你可能会创建一个数组的长度6,增加一个特定的索引数组的每一次访问一个特定的体重类别(您可能把它后显示命令)。这样你为每个重量维护一个计数器类别。
更优雅/复杂的解决方案,你可以看一看地图:
希望这个有帮助。
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,“肥胖第三类”))