Matrix from triple loop

6 visualizaciones (últimos 30 días)
cniv_we
cniv_we el 28 de Sept. de 2016
Comentada: cniv_we el 28 de Sept. de 2016
I am trying to simplify the code from following loop:
for i = 1:10
for j = 11:20
RS_1(:,i) = signal(:,i) - signal(:,j);
end
for j = 21:30
RS_2(:,i) = signal(:,i) - signal(:,j);
end
for j = 31:40
RS_3(:,i) = signal(:,i) - signal(:,j);
end
for j = 41:50
RS_4(:,i) = signal(:,i) - signal(:,j);
end
RS = [RS_1 RS_2 RS_3 RS_4];
end
With this one:
for i = 1:10
for j = 11:50
for k = 1:40
RS(:,k) = signal(:,i) - signal(:,j);
end
end
end
I am wondering why do I get different matrix RS?

Respuesta aceptada

Massimo Zanetti
Massimo Zanetti el 28 de Sept. de 2016
It doesn't work because your are using the RS_n matrices in your second code. This is a simplification of the first code:
RS_1(:,1:10) = signal(:,1:10) - signal(:,11:20);
RS_2(:,1:10) = signal(:,1:10) - signal(:,21:30);
RS_3(:,1:10) = signal(:,1:10) - signal(:,31:40);
RS_4(:,1:10) = signal(:,1:10) - signal(:,41:50);
RS = [RS_1 RS_2 RS_3 RS_4];
  3 comentarios
Massimo Zanetti
Massimo Zanetti el 28 de Sept. de 2016
Ah ok! simple like this:
for i=[11,21,31,41]
RS(:,i-10:i-1) = signal(:,1:10)-signal(:,k:k+9);
end
That's it.
cniv_we
cniv_we el 28 de Sept. de 2016
Thanks!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by