[問題] 矩陣的排列問題已回收

看板MATLAB作者 (唉呀呀...)時間17年前 (2008/11/26 15:28), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
使用sort由大到小排列 得到了一組idx矩陣 例如 idx=[ 1 3 2 4 4 3 2 1 2 3 1 4 ] 另外我有一個矩陣B=[ 5 7 1 10 3 8 12 9 7 10 5 4 ] 我要如何使B的每一列依據上面的idx去做排列 也就是最後得到結果會變成B=[ 5 1 7 10 9 12 8 3 10 5 7 4 ] 目前自己想不到所以傻傻的用迴圈一列一列跑 可是我有上萬列要重排....囧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.134.30.107

11/26 21:36, , 1F
B2=B(idx+size(idx,2)*(0:size(idx,1)-1)')
11/26 21:36, 1F

11/26 21:42, , 2F
阿,上面的有誤~
11/26 21:42, 2F

11/26 21:48, , 3F
idx2=idx+repmat(size(idx,2)*(0:size(idx,1)-1)',1,...
11/26 21:48, 3F

11/26 21:49, , 4F
size(idx,2)); BB=B'; B2=BB(idx2')';
11/26 21:49, 4F

11/27 13:14, , 5F
恩.....了解方法的原理了....那再問一下..如果是三維的情況呢
11/27 13:14, 5F

11/27 13:16, , 6F
也就是B是三維矩陣情況...只是第三維的資料也是跟著那idx變動
11/27 13:16, 6F

11/27 13:17, , 7F
這樣的話是將第三維用迴圈去跑還是一樣將idx考慮到三維整個
11/27 13:17, 7F

11/27 13:18, , 8F
重新去排idx!?
11/27 13:18, 8F
文章代碼(AID): #19BFg5Ih (MATLAB)
文章代碼(AID): #19BFg5Ih (MATLAB)