2014-09-05 107 views
0

我需要通過從給定列索引的列表(或元組)的列索引獲得通過從另一個矩陣中選擇列的子集而生成的新矩陣。將矩陣創建爲具有來自另一個矩陣的列的子集

以下是我正在處理的代碼(有一點不僅僅是嘗試創建一個新的矩陣,但可能有趣的是你有一些上下文)。

A = matrix(QQ,[ 
[2,1,4,-1,2], 
[1,-1,5,1,1], 
[-1,2,-7,0,1], 
[2,-1,8,-1,2] 
]) 
print "A\n",A 
print "A rref\n",A.rref() 
p = A.pivots() 
print "A pivots",p 

與下面的輸出:

A 
[ 2 1 4 -1 2] 
[ 1 -1 5 1 1] 
[-1 2 -7 0 1] 
[ 2 -1 8 -1 2] 
A rref 
[ 1 0 3 0 0] 
[ 0 1 -2 0 0] 
[ 0 0 0 1 0] 
[ 0 0 0 0 1] 
A pivots (0, 1, 3, 4) 

現在我希望能夠輕鬆找到matrix對象這使得通過只是給元組p作爲參數來構造一個新的矩陣列的子集的方法,但找不到那樣的東西。

任何想法如何解決這個優雅聖人友好的方式? (避免for環路和多餘的代碼)

謝謝!

回答

1

剛剛找到如何在最簡單,最簡潔的方式做到這一點:

A[:,p] 
3

可以使用matrix_from_columns方法:A.matrix_from_columns(p)