我试图做一个循环重做一个Matlab函数1000次。这里的程序

d = unifrnd (0,10,[10,1]);
c = d.^(-2);
a = round(unifrnd(0,1,[1,10]);
e = a*c
btotal = e+1
SIR = 1/btotal

我想是迭代这个功能1000次,每次SIR的值将由于生成的随机数而变化。对于每次迭代,欲被添加SIR的值一起(总结),并且在第1000次迭代结束时,发现平均SIR(平均值)。

感谢您的帮助

有帮助吗?

解决方案

下面的代码实现你所描述的:

genSIR.m

function SIR = genSIR()
    d = unifrnd (0,10,[10,1]);
    c = d.^(-2);
    a = round(unifrnd(0,1,[1,10]));
    e = a*c;
    btotal = e+1;
    SIR = 1/btotal;
end

主程序

N = 1000;
SIR = zeros(N,1);
for i=1:N
    SIR(i) = genSIR();
end
s = sum(SIR)
m = mean(SIR)

虽然你的函数可以简化...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top