加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
bmi_array.jl 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
魏坤 提交于 2018-08-18 11:48 . 适配v1.0
# 使用均匀分布随机数生成1000个 身高 样本,取值范围为 [0,1)
heights = rand(Float64, 1000)
# 使用均匀分布随机数生成1000个 体重 样本,取值范围为 [0,1)
weights = rand(Float64, 1000)
# 将 身高 数据映射到 [1.5, 1.8) 米
heights = heights .* (1.8-1.5) .+ 1.5
# 将 体重 数据映射到 [30, 100) 千克
weights = weights .* (100-30) .+ 30
# 定义BMI指数计算函数
bmi(w, h) = w / (h^2)
# 计算1000个样本的BMI指数
indexes = broadcast(bmi, weights, heights)
# 或者以下面的语句替代上述的两个语句
# indexes = weights ./ (heights.^2)
# 对BMI指数进行分类
# 1-体重过低,2-正常范围,3-肥胖前期,4-I度肥胖,5-II度肥胖,6-III度肥胖
function bmi_category(index::Float64)
class = 0
if index < 18.5
class = 1
elseif index < 24
class = 2
elseif index < 28
class = 3
elseif index < 30
class = 4
elseif index < 40
class = 5
else
class = 6
end
class # 返回分类编号
end
# 计算每个样本的BMI分类
classes = bmi_category.(indexes)
# 统计每个类别的数量
for c in [1 2 3 4 5 6] # 遍历6个类别,c为类别ID
n = count(x->(x==c), classes) # x->(x==c)为匿名函数
println("category ", c, " ", n) # 打印结果
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化