For loop and omitting every 10th step

3 visualizzazioni (ultimi 30 giorni)
Panty
Panty il 20 Gen 2015
Commentato: Panty il 21 Gen 2015
Hello,
I am doing some Bayesian by running a Gibbs sampler. My issue is that I would like to omit (drop) the draws I get in every 10th repetition. So I was wondering whether there is any command or trick while I am using the FOR command, to ignore or jump the every 10th repetition. So for example:
for i=1:30
I would i to take values 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29
Any idea? Many thanks
  1 Commento
Stephen23
Stephen23 il 20 Gen 2015
You should not use i or j as the loop variable name, as these are the names of the inbuilt imaginary unit .

Accedi per commentare.

Risposta accettata

Image Analyst
Image Analyst il 20 Gen 2015
for i = 1 : 30
if rem(i, 10) == 0
continue;
end
end
  6 Commenti
Panty
Panty il 20 Gen 2015
So if I do it like:
for i = 1 : 30
if rem(i, 10) == 0
continue;
end
for p=1:10
....
end
k=k+1
end
So if i=10,20 or 30 then neither "for p=1:10" nor "k=k+1" will execute. Correct?

Accedi per commentare.

Più risposte (2)

David Young
David Young il 20 Gen 2015
for i = floor(1:10/9:30)
...
end
  2 Commenti
Panty
Panty il 20 Gen 2015
Thank you very much David for the help. It seems clever as well.
Stephen23
Stephen23 il 20 Gen 2015
Modificato: Stephen23 il 20 Gen 2015
Do not use i as the loop variable name, as this is the name of the inbuilt imaginary unit .

Accedi per commentare.


Stephen23
Stephen23 il 20 Gen 2015
A = 1:30;
A(10:10:end) = [];
for a = A
....
end

Categorie

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

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by