質問

私は、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

私が欲しいのはSIRの値が生成された乱数による異なりますたびに、この関数に1000回を反復することです。すべての反復のために、私は、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