vector uses info from itself to grow without for cycle

2 ビュー (過去 30 日間)
gabriele fadanelli
gabriele fadanelli 2020 年 3 月 26 日
編集済み: Walter Roberson 2020 年 3 月 28 日
I need to solve this problem without a for loop:
B= (1:20)
A = [];
A(1) = 1/(1+B(1));
for k = 2:length(B)
A(k,1) = (1-B(k)*sum(A))/(1+B(k));
end
i.e. I need to know if it is possible to get information from prebvious calculation to create a vector, but without a for loop. Thanks.
  13 件のコメント
Walter Roberson
Walter Roberson 2020 年 3 月 27 日
Which of the two?
Recursive functions with no explicit loop are easy for this.
A closed form formula might be difficult.
gabriele fadanelli
gabriele fadanelli 2020 年 3 月 28 日
編集済み: gabriele fadanelli 2020 年 3 月 28 日
even recursive function would be nice thank you. I just need an example.

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2020 年 3 月 28 日
編集済み: Walter Roberson 2020 年 3 月 28 日
function A = calculate_A(n)
if n == 1
A = 1/2;
else
A_before = calculate_A(n-1);
A = [A_before; (1-n*sum(A_before))/(1+n)];
end
end
Note: this will fail at roughly 75000, due to the recursion using up memory.

その他の回答 (1 件)

Ameer Hamza
Ameer Hamza 2020 年 3 月 26 日
編集済み: Ameer Hamza 2020 年 3 月 26 日
For the original code in your question. Following is the simplified form.
k = 1:20;
A = 6.^(k-1);
  1 件のコメント
gabriele fadanelli
gabriele fadanelli 2020 年 3 月 26 日
you are right, but I am actually looking for above problem solution, sorry.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by