Como incrementar un vector cada n filas

1 Ansicht (letzte 30 Tage)
Isabel Aldana Benavides
Isabel Aldana Benavides am 20 Apr. 2020
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

Akzeptierte Antwort

Geoff Hayes
Geoff Hayes am 20 Apr. 2020
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?
  4 Kommentare
Geoff Hayes
Geoff Hayes am 20 Apr. 2020
x = zeros(10,1);
a = 1;
for k = 1:10
if k == 1
x(k) = k + 2;
else
if mod(a,4) == 0;
x(k)= x(k-1) + 4;
a = a + 1; % <----- since skipping, add extra 1 to a
else
x(k)= x(k-1) + 2;
end
end
a=a+1;
end
with results
x =
3
5
7
11
13
15
19
21
23
27
Isabel Aldana Benavides
Isabel Aldana Benavides am 20 Apr. 2020
me salvaste la vida literal, mil gracias, soy algo nueva en esto

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by