matlab生成0-1之间的随机数(不同区间 权重不同)
近期在完成一项项目时,遇到一个问题,就是生成0-1之间的随机数,且要求不同区间之间的权重不同,如0-0.8权重为0.3,0.8-1权重为0.7。由此背景,基于MATLAB的rand函数写了一个分区间不同权重随机数生成函数。%%%权重区间随机数生成函数function [SX]=SS(sn,w,smax)%sn生成随机数的个数,w大区间所在的概率,smax大区间起始位置SX=zeros(sn,1);
·
近期在完成一项项目时,遇到一个问题,就是生成0-1之间的随机数,且要求不同区间之间的权重不同,如0-0.8权重为0.3,0.8-1权重为0.7。由此背景,基于MATLAB的rand函数写了一个分区间不同权重随机数生成函数。
%%
%权重区间随机数生成函数
function [SX]=SS(sn,w,smax) %sn生成随机数的个数,w大区间所在的概率,smax大区间起始位置
SX=zeros(sn,1);
for i=1:sn
t=rand(1,1);
if t<w
SX(i,1)=rand(1,1)*(1-smax)+smax;
else
SX(i,1)=rand(1,1)*smax;
end
end
end
其中sn,为要生成随机数的个数,生成的随机数构成一个列向量。w为大区间的概率,如0.8-1我们期望概率为0.7,则设定w=0.7;smax为大区间的其实位置,0.8-1,则设定smax=0.8.
clc;
clear all;
t=SS(100,0.7,0.8);
function [SX]=SS(sn,w,smax) %sn生成随机数的个数,w大区间所在的概率,smax大区间起始位置
SX=zeros(sn,1);
for i=1:sn
t=rand(1,1);
if t<w
SX(i,1)=rand(1,1)*(1-smax)+smax;
else
SX(i,1)=rand(1,1)*smax;
end
end
end
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)