在 [a b] 之间生成以概率 c 出现的均匀分布的随机数
Generate uniformly distributed random numbers between [a b] which occur with probability c
我想生成均匀分布且在 [a b] 范围内的噪声,发生概率为 c,否则为零
我有一种方法
x = rand(1,n);
y = zeros(1,n);
for i = 1:n
if x(i) > 1-c
y(i) = rand()*(b-a)+a;
end
end
但是不知道对不对。
我觉得你在这里给你添麻烦了。函数rand
生成1到0之间均匀分布的数。区间[0,1]内任意数出现的概率始终为100%。这意味着 n
个数在区间 [a,b]
中的均匀分布可以生成为
val = (b-a) * rand(n,1) + a;
如果您希望某些事情以 c
的概率发生,那么其他事情需要发生 1-c
次,例如
val = (b-a) * rand(n,1) + a;
val(rand(n,1)>c) = 0;
否则 val 为零。这只是零的示例。问题中给出的信息很难给出更好的答案。
我想生成均匀分布且在 [a b] 范围内的噪声,发生概率为 c,否则为零
我有一种方法
x = rand(1,n);
y = zeros(1,n);
for i = 1:n
if x(i) > 1-c
y(i) = rand()*(b-a)+a;
end
end
但是不知道对不对。
我觉得你在这里给你添麻烦了。函数rand
生成1到0之间均匀分布的数。区间[0,1]内任意数出现的概率始终为100%。这意味着 n
个数在区间 [a,b]
中的均匀分布可以生成为
val = (b-a) * rand(n,1) + a;
如果您希望某些事情以 c
的概率发生,那么其他事情需要发生 1-c
次,例如
val = (b-a) * rand(n,1) + a;
val(rand(n,1)>c) = 0;
否则 val 为零。这只是零的示例。问题中给出的信息很难给出更好的答案。