Как я могу суммировать выходы функции в цикле? - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь просто сложить все числа «LengthofRoute» для итераций от 1 до 1000, чтобы затем я мог вычислить среднее значение LengthofRoute за 1000 итераций. Как я могу это сделать? Я искал в интернете и не могу найти правильную процедуру. Dijsktra1 выполняется и возвращает целое число обычно меньше 4.

J=0;
f = 0;
nf = 0;
while J<1000
    LengthofRoute = [];
    B = RandomMatrix(0,1,10,10);
    J=J+1;
    [LengthofRoute, RouteTaken] =Dijkstra1(B, 10, 1);

    if LengthofRoute > 0
        f = f + 1;
        % number of feasible occurrences
    else 
        nf = nf + 1;
        % number of nonfeasible occurrences
    end
    LengthofRoute = LengthofRoute + LengthofRoute
end

1 Ответ

1 голос
/ 29 мая 2019

Вам просто нужно использовать отдельный аккумулятор для суммирования LengthofRoute:

Предположим, LengthofRouteSum накапливает сумму.

  1. Инициализация LengthofRouteSum перед циклом: LengthofRouteSum = 0;
  2. Накопление LengthofRoute в нижней части цикла: LengthofRouteSum = LengthofRouteSum + LengthofRoute;

следующий код должен выполнить работу:

J=0;
f = 0;
nf = 0;
LengthofRouteSum = 0;
while J<1000

    B = RandomMatrix(0,1,10,10);
    J=J+1;    
    [LengthofRoute, RouteTaken] =Dijkstra1(B, 10, 1);

    if LengthofRoute > 0
        f = f + 1;
        % number of feasible occurrences
    else 
        nf = nf + 1;
        % number of nonfeasible occurrences
    end
    LengthofRouteSum = LengthofRouteSum + LengthofRoute;
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...