Domanda

Sto cercando di fare un ciclo di rifare una funzione Matlab 1000 volte. Ecco il programma

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

Quello che voglio è quello di iterare questa funzione 1000 volte, ogni volta che il valore del SIR varierà a causa del numero casuale generato. Per ogni iterazione, voglio che il valore di SIR da aggiungere insieme (riassunto), e alla fine dell'iterazione 1000i, trovo il SIR media (media).

Grazie per l'aiuto

È stato utile?

Soluzione

Il codice qui sotto implementa quello che hai descritto:

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

principale del programma

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

anche se la funzione potrebbe essere semplificata ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top