[其他] 請問迴圈取值?

作者: hyt0327 (hyt)   2015-01-01 22:31:50
迴圈取值問題
假設有一個100x1的array: A=[a1;a2;a3....;a100],element數值為1或0
我想要得到一個100x10的array,內容應如下:
第一個row:從a1開始,每個10個element取一個值而得到:
[a1,a11,a21,a31,a41,a51,a61,a71,a81,a91]
第二個row:從a2開始,每個10個element取一個值而得到:
[a2,a12,a22,a32,a42,a52,a62,a72,a82,a92]
第三個row:從a3開始,每個10個element取一個值而得到:
[a3,a13,a23,a33,a43,a53,a63,a73,a83,a93]
....
第十一個row:[a11,a21,a31,a41,a51,a61,a71,a81,a91,a1]
第十二個row:[a12,a22,a32,a42,a52,a62,a72,a82,a92,a2]
.....
第一百個row:[a100,a10,a20,a30,a40,a50,a60,a70,a80,90]
我原本想用以下code,但i=11時,只能取到a91,不知道該怎麼讓他可以取到a1。
另外,該如何才能得到一個上述的100x10的array?
load('A');
for i=1:100
M=A(i:10:100)';
end
非常感謝
作者: windg (風)   2015-01-01 22:49:00
A=[A;A]; for i = 1:100M =A(i:10:100+i); end
作者: hyt0327 (hyt)   2015-01-05 12:02:00
謝謝你,但不能work耶
作者: CBET ( )   2015-01-05 14:52:00
idx = mod(bsxfun(@plus, 1 : 10 : 100, (0 : 99)') - 1,...100) + 1; M = A(idx);
作者: hyt0327 (hyt)   2015-01-05 15:26:00
成功了!非常感謝

Links booklink

Contact Us: admin [ a t ] ucptt.com