Re: [問題] 矩陣行列變換
※ 引述《xnicky2000 (愛談低調的地瓜)》之銘言:
: 我現在有個矩陣
: ┌ ┐
: │ a b c d │
: │ │
: │ │
: │ e f g h │
: │ │
: │ │
: │ i j k l │
: │ │
: │ │
: │ m n o p │
: │ │
: └ ┘
: 如果我要把 m n o p
: 往上移變成
: ┌ ┐
: │ a b c d │
: │ │
: │ m n o p │
: │ │
: │ e f g h │
: │ │
: │ i j k l │
: │ │
: └ ┘
: 要怎樣做啊?? 可以用TABLE做嗎?
: 因為如果之後可能又有別行要換 可以比較好了解
: 感謝
: 版本是7.0的
方法很多
線性代數列變換的話是左乘矩陣
[ 1 0 0 0 ]
[ 0 0 1 0 ]
[ 0 0 0 1 ]
[ 0 1 0 0 ]
可以用SparseArray寫成
t= SparseArray[{{1, 1} -> 1, {2, 3} -> 1, {3, 4} -> 1, {4, 2} -> 1}]
新矩陣 = t.原矩陣 (* . 是Dot[],即普通矩陣乘法運算 *)
如果用table的方法大概是,以%1代表原矩陣
mtx = Table[Part[%1, i /. {1 -> 1, 2 -> 3, 3 -> 4, 4 -> 2}], {i, 4}]
要行置換就先Transpose,交換過再Transpose回來
mtx2 = Transpose@Table[Part[Transpose[%1], i /.{1->1,2->3,3->4,4->2}],{i, 4}]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.213.88
→
11/17 17:12, , 1F
11/17 17:12, 1F
→
11/17 17:13, , 2F
11/17 17:13, 2F
討論串 (同標題文章)
Mathematica 近期熱門文章
PTT數位生活區 即時熱門文章