[問題] 關於特徵值排列的問題已回收

看板MATLAB作者 (哈林‧★.。.:*)時間15年前 (2010/10/06 09:35), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
有個題目是這樣的 ┌ ┐ │ .1 .3 .7 │ H =│ .5 .4 .1 │ │ .2 .6 .8 │ └ ┘ 要求特徵值及特徵向量 簡單的用 H=[ .1 .3 .7; .5 .4 .1; .2 .6 .8]; [U;D]=eig(H); D的結果為 ┌ ┐ │ 0.0093 0 0 │ D = │ 0 0.2630 0 │ │ 0 0 1.7776 │ └ ┘ 我的問題是 如何用簡單的方式讓D的特徵值由大排到小 我希望的結果是 ┌ ┐ │ 1.7776 0 0 │ │ 0 0.2630 0 │ │ 0 0 0.0093 │ └ ┘ [Y,I]=sortrows(D)的結果是... ┌ ┐ │ 0 0 1.7776 │ Y = │ 0 0.2630 0 │ │ 0.0093 0 0 │ └ ┘ -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.178.190

10/06 10:05, , 1F
最後Y再作矩陣左右對調就好了 我記得有函式
10/06 10:05, 1F

10/06 10:49, , 2F
謝謝樓上 我找到了 D=fliplr(sortrows(D));
10/06 10:49, 2F

10/08 22:10, , 3F
diag(sort(diag(D)))
10/08 22:10, 3F

10/08 22:11, , 4F
小心特徵向量也要相對移動喔!!如果有用到的話
10/08 22:11, 4F
文章代碼(AID): #1Cgz9m5l (MATLAB)