[其他] 請問迴圈取值?

看板MATLAB作者 (hyt)時間10年前 (2015/01/01 22:31), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
迴圈取值問題 假設有一個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 非常感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.99.210 ※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1420122712.A.722.html

01/01 22:49, , 1F
A=[A;A]; for i = 1:100
01/01 22:49, 1F

01/01 22:50, , 2F
M =A(i:10:100+i); end
01/01 22:50, 2F

01/05 12:02, , 3F
謝謝你,但不能work耶
01/05 12:02, 3F

01/05 14:52, , 4F
idx = mod(bsxfun(@plus, 1 : 10 : 100, (0 : 99)') - 1,...
01/05 14:52, 4F

01/05 14:52, , 5F
100) + 1; M = A(idx);
01/05 14:52, 5F

01/05 15:26, , 6F
成功了!非常感謝
01/05 15:26, 6F
文章代碼(AID): #1KfLfOSY (MATLAB)
文章代碼(AID): #1KfLfOSY (MATLAB)