Matlab: Как написать функцию, которая получает целое число n и всегда возвращает результат P = 1 * 1.2 * 1.4 * .... * (1 + 0.2 * (n-1)) - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь решить проблему, которая требует написания функции с именем repeat_prod (n), которая получает целое число n и возвращает результат следующей функции:

P = 1 * 1.2 * 1.4 *. ... (1 + 0,2 (n-1))

для примера, если n равно 6:

repeat_prod(6)

ans = 9.6768

Я попробовал следующее:

function P = repeat_prod(n)
  for 1:n-1
    P = (1+0.2*(n-1));
  end
end

Но это не работает. Как мне заставить l oop работать?

1 Ответ

1 голос
/ 16 апреля 2020

Логика c в вашей функции должна выглядеть примерно так:

function P = repeat_prod(n)
  P = 1; % initial value for following cumulative products 
  for k = 1:n
    P = P*(1+0.2*(k-1));
  end
end

Компактная версия

Вы также можете использовать prod в пределах Ваша функция repeat_prod заменить for l oop, т. е.

function P = repeat_prod(n)
  P = prod(1 + 0.2*((1:n)-1));
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...