MATLAB: Como incrementar un vector cada n filas

for loopif statement

Hola,
Tengo este script
x = zeros(10,1);
a = 1;
for k = 1:2:21;
if mod(a,4)==0;
x(a)= k+4;
else
x(a)= k+2;
end
a=a+1;
end
y obtengo esto:
3
5
7
11
11
13
15
19
19
21
23
y yo quiero obtener
3
5
7
11
13
15
19
21
23
es decir, sin que se me repita el 11 y 19.
Gracias

Best Answer

Isabel - why
if mod(a,4)==0; % <----- a
instead of
if mod(k,4)==0; % <----- k
? And so your code would be
x = zeros(11,1); % <------ 11
a = 1;
for k = 1:2:21;
if mod(k,4)==0; % <------ k
x(a)= k+4;
else
x(a)= k+2;
end
a=a+1;
end
with result
3
5
7
9 % <----- 9
11
13
15
17 % <------ 17
19
21
23
Note that k = 1:2:21 means that k is always odd: k = 1, 3,5,7,9,11,13,15,17,19,21 and so the condition mod(k,4)==0; will NEVER be true. Is this what you expect?