アプリ版:「スタンプのみでお礼する」機能のリリースについて

numpyを使って行列計算を行おうとしていますが、肝心の行列作成でつまづいています。
下記のような書き方はできないんでしょうか?

A = numpy.array([a, b, c], [b, c, d], [c, d, e])

(a~eは実数型の変数、3x3の行列を作りたい)

web上で探した結果、数値は全てリテラルになってるようですが、
変数を使った初期化は無理ですか?

A 回答 (1件)

A = numpy.array([[a, b, c], [b, c, d], [c, d, e]])


では?

マニュアルを読むと、行列の内容を指定する引数は一つだけです。
その指定では、引数が3つ指定されています。

この回答への補足

回答有り難うございます。

上記の書き方だと文法的には通ったのですが、続くコードで
エラーになってしまいます。
A = numpy.array([[a, b, c], [b, c, d], [c, d, e]])
B = numpy.array([[m, n, o]])
C = numpy.linalg.solve(A, B)←エラー(次元数の互換性無し?)

次の書き方はOK
A = numpy.zeros((3, 3))
インデックスを指定して値を代入x9個
のようです。

補足日時:2013/06/20 19:53
    • good
    • 0
この回答へのお礼

結局行列として計算する場合は次のように書くのが正解のようでした。
A = numpy.matrix([[a, b, c], [b, c, d], [c, d, e]])
B = numpy.matrix([[m], [n], [o]])
C = numpy.linalg.solve(A, B)

※arrayをmatrixに変更。
 列ベクトルはちゃんと列ベクトルとして表現する。

お礼日時:2013/06/22 20:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!