Вопрос

Я пытаюсь сделать петлю, чтобы переделать функцию 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 будет варьироваться из -за генерируемого случайного числа. Для каждой итерации я хочу, чтобы значение сэра было собрано вместе (суммировано), а в конце 1000 -й итерации - найти среднего сэра (среднее).

Спасибо за помощь

Это было полезно?

Решение

Код ниже реализует то, что вы описали:

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