Matrix from triple loop
조회 수: 2 (최근 30일)
이전 댓글 표시
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?
댓글 수: 0
채택된 답변
Massimo Zanetti
2016년 9월 28일
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
Massimo Zanetti
2016년 9월 28일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!