For loop confusion!

1 visualizzazione (ultimi 30 giorni)
Sophia
Sophia il 12 Mag 2016
Modificato: Chad Greene il 13 Mag 2016
ind1 = 1:6;
for t2=1:size(mm_r,3);
if t2 <= 6
wt_r = mm_r(1:361,1:361,ind1);
wint2_r(:,:,t2) = mean(wt_r,3); %wint2_r is of 361*361*6
ind1 = ind1+6;
else
end
end
To calculate the sequential differences I want to write this part in for loop, but it is not working out the way i want lets say an_r of size 361*361*5
anom_90_84_r = wint2_r(:,:,2) - wint2_r(:,:,1);
anom_96_90_r = wint2_r(:,:,3) - wint2_r(:,:,2);
anom_02_96_r = wint2_r(:,:,4) - wint2_r(:,:,3);
anom_08_02_r = wint2_r(:,:,5) - wint2_r(:,:,4);
anom_15_08_r = wint2_r(:,:,6) - wint2_r(:,:,5);
  3 Commenti
dpb
dpb il 13 Mag 2016
Don't know that we can help simply on the basis of "it isn't working the way I want", sorry. What is the desired output from what input? Generally a (very small) sample case that illustrates numerically helps clarify what often is difficult describing solely in words.
Weird Rando
Weird Rando il 13 Mag 2016
Modificato: Weird Rando il 13 Mag 2016
Just letting you know that you didn't really need the if statement if you just start the for loop at 2.
for k = 2:size(wint2_r,3)
anom_r = wint2_r(:,:,k)-wint2_r(:,:,(k-1));
an_r(:,:,k-1) = anom_r;
end
Basically, are you asking how to dynamically name variable to store data. So in the for loop you would do this
anom_90_84_r = wint2_r(:,:,2) - wint2_r(:,:,1);
anom_96_90_r = wint2_r(:,:,3) - wint2_r(:,:,2);
anom_02_96_r = wint2_r(:,:,4) - wint2_r(:,:,3);
anom_08_02_r = wint2_r(:,:,5) - wint2_r(:,:,4);
anom_15_08_r = wint2_r(:,:,6) - wint2_r(:,:,5);

Accedi per commentare.

Risposta accettata

Chad Greene
Chad Greene il 13 Mag 2016
Modificato: Chad Greene il 13 Mag 2016
I think you can skip the loops and use diff:
an_r = diff(wint2_r,1,3);

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by