Re: [問題] 依照序號抓數字(矩陣版)已回收

看板MATLAB作者 (幻無影)時間15年前 (2010/05/05 17:44), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/4 (看更多)
※ 引述《phylliss (何じゃこりゃ!)》之銘言: : 例: : A = [ 5 1 9 8 3 ]; : i1 = [ 2 3 1 4 5 ]; : 所以 A(i1) = [ 1 9 5 8 3 ] : 問題: : A = [ 2 1 5 7 3 : 9 7 3 5 1 : 7 5 2 9 0 ]; : i1 = [ 1 3 2 4 5 : 5 3 4 1 2 : 1 2 4 3 5 ]; : 欲同上例 A(i1) = [ 2 5 1 7 3 %(以下這三行是錯的) : 1 3 5 9 7 : 7 5 9 2 0 ] : 請問該怎麼做,才能依照i1矩陣內的index依列抓取呢?謝謝好心人士的回答! [m, n] = size(i1); ind = sub2ind(size(A), repmat((1:m)', 1, n), i1); % result A(ind) -- ※ 發信站: 批踢踢實業坊(ptt.cc)

05/06 13:44, , 1F
推一下 神乎其技
05/06 13:44, 1F

05/06 18:19, , 2F
沒想到居然有不用迴圈的解決方式,謝謝您的解答!
05/06 18:19, 2F
小改了一下,避免 i1 維度與 A 不同會出錯的情形。也感謝原原 PO 的謝禮。XD ※ 編輯: DigiPrince 來自: 140.113.94.230 (05/07 03:59)
文章代碼(AID): #1BuJtw84 (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1BuJtw84 (MATLAB)