Matlab中如何使含有随机数的函数重复执行1000次?用for循环语句可以实现吗?
我用Matlab定义了一个函数D1=logninv(P,mu1,VAR1),其中,mu1,VAR1为常数,P由两个随机变量R和c决定(并且P<=0时,令P=-P,当P>1时,令P=P-1),用什么方法可以使函数重复运行1000次,然后算这1000个结果的平均值。下面代码可以实现吗?我用下面代码算出来的结果理论上不对,不知道哪里有问题,求教各位大神,提前谢谢了。
VAR1=0.3
x1=1
mu1=log(x1)-(VAR1)^2/2
for i=1:1000
R(i)=unifrnd(0,1)
h=0.9
c(i)=unifrnd(0,1)
a(i)=R(i)-1+h
b(i)=R(i)+1-h
P(i)=(b(i)-a(i))*c(i)+a(i)
if P(i)<0
P(i)=-P(i)
elseif P(i)>1
P(i)=P(i)-1
else
P(i)=P(i)
end
D1(i)=logninv(P(i),mu1,VAR1)
end
m=mean(D1)