-1

ベクトルから値を取得して、行列の対角の値にする方法は? 私はパイソンを使用しています。

4

3 に答える 3

1

これを行うリスト内包は次のとおりです。

[[v[i] if i==j else 0 for i in range(len(v))] for j in range(len(v))]
于 2012-11-27T05:51:52.180 に答える
0

次のような意味ですか:

vec = [1,2,3,4]
->
mat = [[1,0,0,0],
       [0,2,0,0],
       [0,0,3,0],
       [0,0,0,4]]

次に、一般的なアイデアは、カウンターを使用して vec をループし、そのリスト vec[i] の i 番目の要素を作成した後、mat に [0,0,0,0] を追加することです。

于 2012-11-27T05:22:23.653 に答える
0

リストのリストでマトリックスを作成したいだけの場合:

values = [1,2,3]
matrix =[[1 0 0]
         [0 2 0]
         [0 0 3]]

次に、次のコードが機能するはずです

values = [1,2,3]
matrix=[]
size = len(values)
for i in range(size):
  tmp = []
  for j in range(size):
    if i == j:
      tmp.append(values[i])
    else:
      tmp.append(0)
  matrix.append(tmp)
print(matrix) 
于 2012-11-27T05:25:54.810 に答える