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

 Réponse acceptée

Geoff Hayes
Geoff Hayes le 20 Avr 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 commentaires

Isabel Aldana Benavides
Isabel Aldana Benavides le 20 Avr 2020
Modifié(e) : Isabel Aldana Benavides le 20 Avr 2020
Muchas gracias por tu respuesta, pero lo que yo quiero es que cada 4 posiciones me incremente 4 en vez de 2, los otros valores deben ir incrementando en 2 en base al anterior valor siempre, espero me puedas ayudar!!
3
5
7
11 %<----7+4
13 %<----11+2
15
19
21
23
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
me salvaste la vida literal, mil gracias, soy algo nueva en esto

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by