MATLAB passanti per una funzione
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
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