Vectorize for loop with recursion

Hi all,
I have a for loop, which I'm struggeling to vectorize.
I've made a short example of what I'm trying to accomplish here.
This is not my exact code but I hope it shows the dilemma.
Does anyone have a clue?
Thanks in advance!
P1 = zeros(10,1);
P2 = zeros(10,1);
P3 = zeros(10,1);
P4 = zeros(10+1,1);
x = 1;
for i=1:10
if P4(i) > 0
P1(i) = x;
else
P2(i) = x;
end
P3(i) = P2(i) + P1(i);
P4(i+1) = P4(i) + P3(i);
end

Réponses (1)

Birdman
Birdman le 27 Mar 2020
P1(P4>0)=x;
P2(P4<0)=x;
P3=P1+P2;
P4(2:end)=P3+P4(1:end-1);

1 commentaire

olf nair
olf nair le 27 Mar 2020
I was thinking about this solution too but unfortunatly this only picks up the main problem:
The if conditions depend on the exact state of P4, which isnt known in that vectorized solution yet.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

le 27 Mar 2020

Commenté :

le 27 Mar 2020

Community Treasure Hunt

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

Start Hunting!

Translated by