Matrix from triple loop

2 visualizzazioni (ultimi 30 giorni)
cniv_we
cniv_we il 28 Set 2016
Commentato: cniv_we il 28 Set 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?

Risposta accettata

Massimo Zanetti
Massimo Zanetti il 28 Set 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 Commenti
Massimo Zanetti
Massimo Zanetti il 28 Set 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 il 28 Set 2016
Thanks!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by