Como incrementar un vector cada n filas
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Geoff Hayes
2020-4-20
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 个评论
Geoff Hayes
2020-4-20
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
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!