小弟想要把avg值给固定住
以下是我的程式码
for j=1:1000
for i=1:1000
data=normrnd(mu,sigma,m,n);%随机产生常态机率的值(-3~3间)
data_total=[data_total; data];
if (data>3) || (data<-3)%若在-3与3之外,就停止循环
break
end
end
d=[d;i];
end
avg=mean(d)%ARL值
以上avg输出结果都会落在350~380左右,现在我想要把avg值给固定住
就是我这次avg值是375,下次在run一次也是375,run个n次还是375,
于是在我的程式码中加入了rng,如下
for j=1:1000
for i=1:1000
rng('default');
rng(i)
data=normrnd(mu,sigma,m,n);%随机产生常态机率的值(-3~3间)
data_total=[data_total; data];
if (data>3) || (data<-3)%若在-3与3之外,就停止循环
break
end
end
d=[d;i];
end
avg=mean(d)%ARL值
以上的avg输出结果都一值落在72,但并不是我要的结果,
因为我点开d矩阵一看,1~1000个都是72,
又点了data矩阵一看,发现1~72笔数据、73~144、145~216以此类堆...
也就是每72笔乱数都一样,所以才会造成我的avg都一值落在72
主要是因为我的rng(i)碰上了if与break,所以第72笔break后就从1开始
而小弟要的结果是d矩阵不能都相同、rng(i)不受if循环控制、avg值也跟原始一样落在
350~380左右,但下次再run时要跟上次一样
谢谢!!麻烦大大了!!