已知数据分布在45~80之间,且60以上的有523人(共1000人),如何用matlab模拟出这100个数据?
1个回答
展开全部
clear all
min_1=45;%最小值
min_2=60;%最小值
max=80;%最大值
n=1000;%总共多少个数据
m=523;%60分以上的个数
x1=rand(1,n-m);
y1=round(min_1+(min_2-min_1-1)*x1);%45-59分的数据
x2=rand(1,m);
y2=round(min_2+(max-min_2)*x2);%60-80分的数据
Y=[y1,y2];%合并两组数据
Y1=Y(randperm(n));%将合并后的数据顺序打乱,得到最终需要的分数数组
Yn1=length(find(Y1>=60&Y1<=80));%检测60分以上的个数是否符合设定m
figure(1)
plot(Y1)
xlabel('数据点'),ylabel('分数')
title(['分数数据 (60分以上个数',num2str(Yn1),')'])
%这程序每运行一次得到的每种数据值的个数都不同,请注意及时保存成数据文件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询