我正在尝试生成0和1的随机序列,这样无论何时生成序列,1的概率都是0.3。我在Matlab中尝试了以下内容
%%clear all; %%close all;clc; %%(rand(1,10)<=0.3)
问题在于,每次运行时,我都会获得不同比例的1。 任何人都可以提出更好的方法吗?
答案 0 :(得分:6)
如果你想在最后 exactely 一个0.3的比例,你可以这样做:
n=1000; %should be a multiple of 10.
x=[ones(1,n*3/10) zeros(1,n*7/10)];
x=x(randperm(n));
基本上,它会创建一个0.3
比例为1
的数组。
然后,它随机置换它。